2013-06-18 143 views
0

我試圖在我正在寫的應用程序中實現效果,也許你可以提供幫助。UILabel動畫和手勢

視圖層次是在這一點上相當複雜,所以爲了簡單起見,讓我們只說我有一個UILabel與它的阿爾法值設置爲0 目前我使用的是UILongPressGestureRecognizer這是幾秒鐘後,調用一個方法它會更新UILabel的文本並執行一個UIView Animation塊來很好地顯示它(在1秒的時間內將Al​​pha重新設置爲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