我正在尝试实现与Apple Messages应用程序底部文本输入栏相似的定位行为。
我尝试了许多方法,上下搜索,有很多类似的问题,但没有一个令人满意。
指定:
UIToolbar
视图底部有一个建议的解决方案:
此解决方案不满足第二个要求的特殊情况(工具栏应在键盘出现和消失时跟随键盘):
UIScrollViewKeyboardDismissMode
被引入。它启用了交互式手势以关闭键盘。当用户平移经过键盘的顶部边缘时,键盘框架逐渐跟随。该解决方案没有采取任何措施来适应这种行为,只是使工具栏滞留在其动画位置。此外,此解决方案还无法满足第三个要求的特殊情况(当键盘可见时,工具栏应位于键盘顶部):
此解决方案的另一个问题:
下一个建议的解决方案:
UIResponder
的inputAccessoryView
这种解决方案似乎是Apple打算支持这种行为的方式,因为它解决了手动设置工具栏动画的所有缺点。但是此解决方案完全没有满足第四项要求(当隐藏键盘时,工具栏停留在视图底部)。
似乎解决方案是使用UIResponder
的inputAccessoryView
,但以某种方式使inputAccessoryView
该视图不移动。我正在寻找干净的代码来完成此任务。在其他地方进行了精心的,几乎是高尚的尝试,但是如上所述,它们不符合要求。
在我的特殊情况下,我希望使用UINavigationController
的工具栏,它会带来其他问题,因为这不是预期的行为UINavigationController
。没关系,我愿意介绍一些hacky修复程序来完成此操作。
Jason Foreman(@threeve)刚刚向我展示了“该”解决方案。在视图控制器上(是的,视图控制器)添加inputAccessoryView:
并返回要停靠在底部的视图,并使用键盘进行移动。它就是有效的。该视图实际上不需要位于您的视图层次结构中,它将由视图控制器自动插入。
编辑:还实现canBecomeFirstResponder并返回YES(如Max Seelemann所述)。reloadInputViews也可以很方便。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句