2016-06-25 1 views
2

У меня есть жест, действие которого перемещает UIView в точку B из точки A. Как добавить хороший переход UIView, перемещающийся из точки A в точку B. Я глядя на то, что он медленно перемещается из точки А в точку В. Как мне это сделать? На данный момент, чтобы переместить элемент я установить рамку в точку Б.Добавить анимацию в uiview, перемещаясь из точки A в точку B

ответ

2

проверить этот код и установите рамку, что вы хотите

[UIView animateWithDuration:0.75 animations:^{ 
    button.frame = CGRectMake(10, 70, 100, 100); 
}]; 
+0

Что я определяю _animation1 и _animationInProgress как? – TheHellOTrofasdasd

+0

, если вы хотите что-то сделать по завершении анимации, вы можете сделать это, просто удалите _animationInProgress – PinkeshGjr

+0

Я получаю undefined идентификатор для _animation1. Я просто удалю это, если просто хочу анимацию, но потом ничего не произойдет? – TheHellOTrofasdasd

0

Вы можете добиться того, что с помощью animateKeyframesWithDuration или animateWithDuration:animations, но это будет просто линейная интерполяция. Если вы хотите иметь больше контроля над анимацией я рекомендую вам взглянуть на MTAnimation это действительно мощный и простой в использовании Lib для достижения красивых анимаций

Приветствия

2

Если вы используете автоматическую раскладку (и вы почти наверняка - это по умолчанию), то решение @PinkeshGjr s, вероятно, будет иметь проблемы. С помощью AutoLayout вы не можете напрямую манипулировать рамкой представления. В какой-то момент после перемещения рамки ограничения вида могут отловить его.

Вместо этого вы хотите создать ограничения, которые управляют свойствами/свойствами, которые вы хотите оживить (в этом случае - позиция x и y) и перетащить управление из ограничений в заголовок контроллера вашего вида для создания точек.

Затем вы хотите изменить постоянное значение на ограничения и вызвать layoutIfNeeded внутри вашего кода анимации. Что-то вроде этого:

buttonXConstraint.constant = 100; 
buttonYConstraint.constant = 100; 

[UIView animateWithDuration:0.75 animations:^{ 
    [self.button layoutIfNeeded]; 
}]; 

Код выше предполагает, что вы создали 2 ограничений торговых точек и назвал их buttonXConstraint и buttonYConstraint.

+0

Это должен быть правильный ответ. Давай, мы в 2016 году, все ДОЛЖНЫ использовать ограничения. Я был бы очень рад, если Apple полностью удалит фреймворк из Xcode. –

0

Очень хороший вспомогательный метод для анимационного просмотра.