久しぶりの潜入者 - 初めてのポスター!
UITextViewWhatsAppのようにバーを再作成しているときに問題が発生しました。
私はカスタムUIViewサブクラスを使用しており、それを遅延してインスタンス化しています:
- (UIView *)inputAccessoryView
YES を返す:
- (BOOL)canBecomeFirstResponder
inputAccessoryView今、サイズが大きくなったらサイズを変更したいと思いUITextViewます。iOS 7では、ビューのフレームのサイズを変更するだけで、原点ではなく、呼び出すreloadInputViewsと機能します。ビューが上に移動して、キーボードの上に完全に表示されるようにします。
ただし、iOS 8 では、これは機能しません。それを機能させる唯一の方法は、フレームの原点も負の値に変更することです。これは問題ありませんが、奇妙なバグが発生する場合があります。たとえば、UIViewテキストを入力すると「元の」フレームに戻るなどです。
足りないものはありますか?inputAccessoryViewアプリの最新バージョンでのみ、ドラッグ時にキーボードを閉じる方法があるため、WhatsAppが使用していると確信しています。
あなたが私を助けることができるかどうか私に知らせてください!または、私に実行してほしいテストがあれば!
ありがとうございました!:)
ところで、これは私が呼び出したカスタムUIViewの高さを更新するために使用しているコードですcomposeBar:
// ComposeBar frame size
CGRect frame = self.composeBar.frame;
frame.size.height += heightDifference;
frame.origin.y -= heightDifference;
self.composeBar.frame = frame;
[self.composeBar.textView reloadInputViews]; // Tried with this
[self reloadInputViews]; // and this
編集: 完全なソース コードは、@ https://github.com/manuelmenzella/SocketChat-iOSで入手できます。