2015-02-13 9 views
0

Я создаю приложение, в котором я хочу получить обратную привязку к обновлению. Нет никакого приложения tableView, но я бы хотел потянуть UIButton, чтобы увеличить его высоту и анимировать ярлык и другие свойства, такие как backgroundColor, одновременно - достижение того же эффекта, что и при использовании pull-to-refresh. Мне также нужен эффект отскока/отскока, чтобы подражать гравитации.Анимировать высоту UIButton с UIGestureRecognizer

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

Одна идея состояла в том, чтобы связать animateWithDuration из UIView до UIGestureRecognizer:

[UIView animateWithDuration: delay: usingSpringWithDamping: initialSpringVelocity: options: animations: completion:nil] 

Я использую раскадровки и autolayout. Какой был бы лучший подход к этому?

Спасибо!

+0

Вы используете автозапуск? – YuviGr

+0

@YuviGr да, я использую autolayout – Erik

+0

@YuviGr Очень хороший пример желаемого поведения - центр действия iOS – Erik

ответ

0

Вам нужно использовать высоту constraint вашей кнопки.

Если у вас нет каких-либо ссылок на него, вы можете контролировать, перетащить его в ViewController, как и

@property (weak, nonatomic) IBOutlet NSLayoutConstraint *buttonHeight; 

После того как вы это вы можете изменить высоту кнопок в соответствии с пользователем панорамирование жест , Просто добавьте gestureRecogniser к представлению

UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(userPulledDown:)]; 
[view addGestureRecognizer:pan]; 

в методе жест

- (void)userPulledDown:(UIGestureRecognizer *)gesture 
{ 
    switch (gesture.state){ 
    case UIGestureRecognizerStateBegan: 
     // the user has started to pull the view 
     break; 
    case UIGestureRecognizerStateChanged: 
     // create the animation of the button (using the constraint) & other views 
     break; 
    case UIGestureRecognizerStateEnded: 
     // clean-up after the user released the gesture 
     break; 
    } 
} 

EDIT

Вы я бы рекомендовал вызов метода translationInView: в UIPanGestureRecognizer этот метод возвращает CGPoint (х, y) панорамы в представлении, которое вы ему дали.

Но вам действительно нужно прочитать документацию UIPanGestureRecognizer & UIGestureRecognizer, чтобы действительно понять и лучше при кодировании в прошивкой

EDIT2

подпрыгивать силу по

проверить эту answer

+0

Я получаю сообщение об ошибке: использование необъявленного идентификатора «Стало» - мне нужно что-то импортировать или соответствовать на что-то? – Erik

+0

У меня есть инструкция switch для вас – YuviGr

+0

Какую собственность у UIGestureRecognizer следует использовать для изменения свойства константы ограничения? – Erik

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