我有一个应用程序,它在屏幕底部有一个标签栏(40磅高),以及一个直接在其上方的UITextField。当键盘变为活动状态时,我想为文本字段设置动画,使其在贴在键盘顶部时向上移动。
但是,这非常棘手,因为在键盘动画越过底部标签栏之前,文本字段不应移动。
所以这就是我想要实现的动画:
我想为此使用自定义缓动功能,因为如果我只是为动画添加一个小延迟,它看起来并不正确。它压缩动画曲线,这意味着文本字段不会保持锁定在键盘顶部。
我尝试了一些参数化动画库,但是很难让他们使用Swift。
我发现许多资源适用于文本字段位于屏幕最底部的情况,例如this post。但不幸的是,他们无法轻易调整以解释底部标签栏。
答案 0 :(得分:0)
如果你想在ios中的消息应用程序中实现效果,你可以这样做:
首先不要将文本字段直接放入视图层次结构中。
在viewController中覆盖canBecomeFirstResponder
方法并从中返回true
。
override func canBecomeFirstResponder() -> Bool {
return true
}
然后在视图控制器中覆盖inputAccessoryView
方法,并返回要在键盘顶部显示的视图。
override func inputAccessoryView() -> UIView {
return textField
}
注意:您必须创建textField并设置它。您可以将其创建为视图控制器的惰性属性