Ios 检测屏幕UIView动画的边缘
我有一个Ios 检测屏幕UIView动画的边缘,ios,objective-c,uiview,Ios,Objective C,Uiview,我有一个ui视图动画来移动屏幕上的对象,我希望对象离开屏幕时停止动画(并且对象在动画停止时保持位置) 我希望我的对象始终可见,并在遇到屏幕边缘时停止移动。目标点可能在任何地方 [UIView beginAnimations:nil context:nil]; [UIView setAnimationDuration:1]; [UIView setAnimationCurve:UIViewAnimationCurveEaseOut]; self.MyObject.center = targetPo
ui视图
动画来移动屏幕上的对象,我希望对象离开屏幕时停止动画(并且对象在动画停止时保持位置)
我希望我的对象始终可见,并在遇到屏幕边缘时停止移动。目标点可能在任何地方
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1];
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];
self.MyObject.center = targetPoint;
[UIView commitAnimations];
我试图启动一个定时计时器,检查对象是否在屏幕外,但似乎我的对象的位置没有改变
感谢您的帮助。如果您希望从屏幕的左至右边缘设置对象的动画,下面是代码示例
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];
希望能有帮助。
干杯。我可能还没有完全理解你的问题。但据我所知,如果你只是想把对象移出屏幕,为什么你不能通过设置对象帧大于屏幕大小来设置对象动画,直到对象从屏幕上消失?实际上,我希望我的对象始终可见,当它碰到屏幕边缘时停止移动。你可以自己计算它,这很容易逻辑。只需检查屏幕外边界中的新计算位置,如果是,请停止用于设置动画的计时器。