我有一个应用程序,它在屏幕底部有一个选项卡条(40 pt高),而UITextField就在它的正上方。当键盘处于活动状态时,我希望将文本字段动画化,这样它就会向上移动,同时保持在键盘的顶部。
然而,这是非常棘手的,因为文本字段不应该移动,直到键盘动画通过底部的选项卡栏。
下面是我想要实现的动画:
我想使用一个自定义宽松功能,因为它看起来不对,如果我只是添加一个小的延迟动画。它压缩动画曲线,这意味着文本字段不会被锁定在键盘顶部。
我尝试过一些参数化动画库,但很难让它们与Swift一起工作。
我已经为文本字段位于屏幕最底部的情况找到了许多资源,比如这个职位。但不幸的是,它们不能很容易地被调整以解释底部的选项卡栏。
发布于 2015-02-07 00:43:47
如果你想达到像ios中的消息应用程序那样的效果,你可以这样做:
首先,不要将textfield直接放到视图层次结构中。
在canBecomeFirstResponder
中重写viewController方法并从中返回true
。
override func canBecomeFirstResponder() -> Bool {
return true
}
然后在视图控制器中重写inputAccessoryView
方法,并返回要在键盘上显示的视图。
override func inputAccessoryView() -> UIView {
return textField
}
注意:您必须创建textField并设置它的框架。您可以将其创建为视图控制器的惰性属性。
https://stackoverflow.com/questions/28378130
复制相似问题