长期潜伏者 - 第一次海报!
我在使用UITextView
WhatsApp 重新创建酒吧时遇到问题。
我正在使用一个自定义UIView
子类,并懒惰地实例化它:
- (UIView *)inputAccessoryView
并返回 YES:
- (BOOL)canBecomeFirstResponder
现在,我想在大小增加inputAccessoryView
时更改UITextView
大小。在 iOS 7 上,我只需更改所述视图框架的大小 - 而不是它的原点 - 然后调用reloadInputViews
它就会起作用:视图将向上移动,使其在键盘上方完全可见。
但是,在 iOS 8 上,这不起作用。使其工作的唯一方法是将框架的原点也更改为负值。这很好,除了它会产生一些奇怪的错误:例如,UIView
输入任何文本时返回到“原始”框架。
有什么我想念的吗?我很确定 WhatsApp 会使用inputAccessoryView
,因为它们在拖动时会关闭键盘 - 仅在最新版本的应用程序中。
如果你能帮助我,请告诉我!或者,如果您希望我进行任何测试!
谢谢!:)
顺便说一句,这是我用来更新自定义 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