2014-01-16 51 views
0

我有一个UIView动画在屏幕上移动的对象,我想动画停止(和对象,以保持位置,当动画停止)时,物体离开屏幕。检测屏幕的UIView动画的边缘

我希望我的对象始终可见,并且在遇到屏幕边缘时,请停止移动。目标点可能在任何地方。

[UIView beginAnimations:nil context:nil]; 
[UIView setAnimationDuration:1]; 
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut]; 
self.MyObject.center = targetPoint; 
[UIView commitAnimations]; 

我试图解雇计划的定时器,检查对象是关闭屏幕,但似乎我的位置对象不改变。

感谢您的帮助。

+0

我可能没有清楚地理解你的问题。但是根据我的理解,如果你只是想将对象移出屏幕,为什么不能让对象动画化,直到它通过将对象框架设置为大于屏幕尺寸从屏幕上消失为止? – Ashok

+0

实际上,我希望我的对象始终可见,并在遇到屏幕边缘时停止移动。 – Sudo

+0

你可以自己计算一下它非常简单的逻辑人。只需在屏幕边界内检查新的计算位置,如果停止了用于动画的Ur定时器。 – CoolMonster

回答

0

下面是代码示例,如果您要从屏幕的左边缘到右边缘设置对象的动画效果。

CGRect objectFrame = self.MyObject.frame; 
objectFrame.origin.x = self.view.frame.size.width-objectFrame.size.width; 
[UIView beginAnimations:nil context:nil]; 
[UIView setAnimationDuration:1]; 
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut]; 
[self.MyObject setFrame:objectFrame]; 
[UIView commitAnimations]; 

希望它有帮助。 干杯。