2013-06-18 4 views
0

Я пытаюсь добиться эффекта в приложении, которое я пишу, и, может быть, вы можете помочь.UILabel Анимации и жесты

Иерархия зрения достаточно сложно в этой точке, так для простоты давайте просто скажем, у меня есть UILabel с его значение альфа устанавливается в 0. В настоящее время я использую UILongPressGestureRecognizer, который через пару секунд, вызов метода который обновляет текст UILabel и выполняет блок анимации UIView, чтобы отобразить его красиво (установите Alpha на 1 в течение 1 секунды - затухание).

Этот блок исчезает на недавно обновленной этикетке, а затем в блоке завершения завершает работу в течение второй секунды.

Это нормально, но я действительно хочу, чтобы ярлык исчезал (через анимацию UIView или что-то еще) после долгого нажатия (скажем, 3 секунды). Затем оставайтесь на экране, пока пресса все еще активна, затем постепенно исчезает через секунду после поднятия касания. Как я могу достичь этого эффекта?

Должен ли я забыть о распознавателях жестов и перейти к блокам анимации UIView и полюбить различные состояния касания касания до касания?

Спасибо за чтение, С уважением,

Джону

ответ

1

У каждого пользователя UIGestureRecognizer есть состояние. Когда длительное нажатие ручки, просто проверьте состояние.

- (void)handleLongPress:(UILongPressGestureRecognizer*)longPress 
{ 
    if(longPress.state == UIGestureRecognizerStateEnded){ 
     //do what you want 
     NSLog(@"%@", @"end"); 
    } 
} 
+0

Замечательное спасибо! – Woodstock

1

Длинная пресс распознавань будет работать, вам просто нужно проверить состояние, чтобы знать, что делать. Когда жест сначала распознается, начните затухание. Когда этот жест будет завершен, начните выцветание, но используя метод, который позволит вам установить начальную задержку.

- (void)handleLongPress:(UILongPressGestureRecognizer*)sender 
{ 
    if (sender.state == UIGestureRecognizerStateEnded) { 
     // fade out, delayed 
    } 
    else if (sender.state == UIGestureRecognizerStateBegan) { 
     // fade in 
    } 
} 
+0

Спасибо большое! – Woodstock

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