Awe*_*e-o 4 objective-c uitableview uikit uikeyboard ios
在UIViewController我设定的
范围内self.tableView.keyboardDismissMode = UIScrollViewKeyboardDismissModeInteractive.
这很棒,因为用户可以从桌面视图中向下拖动键盘.
但是,当拖动键盘时,tableview会保持当前的高度.这看起来很奇怪,因为它在键盘和scrollview之间留下了空白空间.
如何持续跟踪键盘的框架,以便在用户拖动键盘时调整tableview的大小?我尝试过使用UIKeyboardWillChangeFrameNotification但似乎只有在用户完成拖动后才会调用.
您的表格视图不应更改其高度以适应键盘.
相反,键盘应该显示在表视图的上方,您应该调整表视图上的contentInset和scrollIndicatorInsets属性,以便键盘不会遮盖下表内容.键盘出现或解除时,您需要更新滚动插入.
键盘以交互方式解除时,您不必执行任何特殊操作,因为当键盘移出视图时,表格内容应该已向下滚动.
我希望这不是一个可以接受的答案,但是对于那些在那里的人来说,也遇到了麻烦,这对我有用。
创建UIView的自定义子类。
在子类的willMoveToSuperview:方法中,将KVO观察者添加到centeriOS 8和frame更低版本的iOS上的超级视图中(请记住要删除旧的观察者,您可能希望使用实例变量进行跟踪)。
在视图控制器中,通过inputAccessoryView类重写将0.0高度输入的附件视图添加到视图控制器。UIView为此,请使用自定义子类。
返回子类,在中observeValueForKeyPath:...,捕获frame视图的父视图的,这应该是的框架UIKeyboard。
NSNotificationCenter然后使用或其他方法将其传递frame回视图控制器进行处理。
这是一个非常痛苦的过程,并且不能保证可以在将来的iOS版本中使用。自从我刚构建此工具之后,可能会出现大量边缘工具,但这是一个好的开始。如果有人有更好的主意,我会很乐意将您的答案标记为正确。
| 归档时间: |
|
| 查看次数: |
2727 次 |
| 最近记录: |