2017-10-16 11 views
0

becomeFirstResponder()は常にメインスレッドで呼び出す必要がありますか?becomeFirstResponder()は常にメインスレッドで呼び出す必要がありますか?

DispatchQueue.main.async { 
     self.inputBarView.placeholderTextView.becomeFirstResponder() 
} 

私はちらつきの問題を修正したと私はメソッドがメインスレッドで呼び出されていることを確認行った後にアニメーションが滑らかになりました。

しかし、私はそれが正しいとは確信していません。

+0

メインスレッドで*常に*呼び出されるはずのことは何もありませんが、そのメソッドはアクティブなビュー階層の一部であるビューでのみ呼び出されるべきであると書かれています。詳細についてはhttps://developer.apple.com/documentation/uikit/uiresponder/1621113-becomefirstresponderを参照してください。しかし、基本的な問題がある可能性があるため、アニメーションのコードも示していれば好きかもしれません。 – TNguyen

答えて

0

アニメーションをスムーズにするのは、becomeFirstResponderをメインスレッドで呼び出すのではなく、placeholderTextViewがメインスレッドで実行されているときにトリガーされているアニメーションが原因である可能性があります。

メインスレッドでbecomeFirstResponderを呼び出すのではなく、すべてのアニメーションとUIの更新がメインスレッドで行われていることを確認してください。

関連する問題