2016-04-25 63 views
1

目前,我正在創建一個使用UIView動畫塊將屏幕底部的UITextfield動畫到給定點的功能。UITextField無法在動畫製作時成爲第一響應者

由於某些原因,UITextfield向上動畫時,它對觸摸事件沒有響應,並且在它調用完成之前不會成爲第一響應者。

我在下面創建了一個示例項目來顯示該問題。

https://github.com/AdamBCo/Textfield-Animation-Issue

正如你所看到的例子,UIViewAnimationOptionAllowUserInteraction在UViewAnimation塊設置。

對這個問題的任何幫助將不勝感激!

回答

1

我能夠通過實施以下解決方案來解決這個問題:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    UITouch *touch = [touches anyObject]; 
    CGPoint touchLocation = [touch locationInView:self.view]; 

    if ([self.textField.layer.presentationLayer hitTest:touchLocation]) 
    { 
     [self.textField becomeFirstResponder]; 
    } 
} 

因爲我已經更新了示例代碼網上顯示演示層,模型層的結束目的地的動畫,一種查看點擊是否位於表示層內的方法。

0

這實際上是預期的操作。你所看到的是CALayer的動畫效果,因此它不會對觸摸做出響應,直到它「落地」。你可以做的是添加一個觸摸識別器,然後測試你的生命值,開始響應某個對象。我不得不問,什麼UI/UX的情況下,這是好的做法?

+0

這對我來說很有幫助,我將動態顯示文本框的背景顏色以表明它需要注意。它實際上是用於糟糕的用戶體驗,用戶不得不等待動畫(儘管很簡單)纔會消失。 –

相關問題