Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/109.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 检测屏幕UIView动画的边缘_Ios_Objective C_Uiview - Fatal编程技术网

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];
希望能有帮助。
干杯。

我可能还没有完全理解你的问题。但据我所知,如果你只是想把对象移出屏幕,为什么你不能通过设置对象帧大于屏幕大小来设置对象动画,直到对象从屏幕上消失?实际上,我希望我的对象始终可见,当它碰到屏幕边缘时停止移动。你可以自己计算它,这很容易逻辑。只需检查屏幕外边界中的新计算位置,如果是,请停止用于设置动画的计时器。