2014-01-16 4 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

u может рассчитать его сам очень простой логический человек. просто проверьте новую расчетную позицию в выключенном экране, если так остановите таймер 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]; 

Надеюсь, это поможет. Cheers.

Смежные вопросы