こんにちはに変更キーボードアニメーションの再生時間、そこのUITextField
をタップしたとき、私はUITextField
をタップするとき、キーボードのアニメーションの再生時間を増やす/減らすしようとしています。
私は
textFieldShouldBeginEditing(textField: UITextField) -> Bool
内部のアニメーションの再生時間を設定しようとしましたが、私は再び呼び出すtextField.becomeFirstResponder()
を呼び出そうとして、私は無限ループを得た: は、私は別のものを試してみましたが、私は自分の目標を達成するために管理することができませんでした私はこの方法でアニメーションを設定など
func textFieldShouldBeginEditing(textField: UITextField) -> Bool
は...手遅れのようなキーボードは(名前がUIKeyboardWillShowNotification
ですNSNotification
への対応)を示すために起こっているが、それは見えたときにトリガー私は追加することを考えていた
UITapGestureRecognizer
への私の私は、私が意味する、私は 『アニメーションをトリガー』と言うとき、それはネイティブUITextField
のジェスチャー認識
と競合することaffraidだが、アニメーションをトリガーするUITextField
UIView.animateWithDuration(10.0, animations: {
textField.becomeFirstResponder()
})
私は今何をすべきか分かりませんが、このアニメーションの時間を変更するのはかなり難しいようです。
任意の提案は本当にいただければ幸いです:)
なぜスーパーコールを次のrunloopに延期していますか? 'becomeFirstResponder'はメインスレッド上でのみ呼び出されます。 –
それはメインスレッドで実行する必要がありますが、奇妙な、私が試した最後の時間、それは他のスレッドで実行され、警告をスローしていた。 もう一度試してみます。メインスレッドで実行しています。 この場合、dispatch_async(dispatch_get_main_queue()) – Codebear
コードを更新する必要はありません。テストしたときにテストされます 1.テキストフィールドのユーザタップ 2. textfield.becomeFirstResponder(アニメーションブロックの有無にかかわらず動作します)を呼び出します – Codebear