在尝试将自定义视图用作文本字段的输入键盘时,我遇到了很多问题。
设置非常简单(用于测试):我有一个带有一个按钮的UIView,一半大小的屏幕和一个位于其上方的文本字段。
我将虚拟视图设置为文本字段的输入视图,如let dummyView : UIView = UIView(frame: CGRect(x: 0, y: 0, width: 1, height: 1))
我还在viewDidAppear
testView.frame.origin.y = view.bounds.height
添加了以下设置。这当然被忽略,因为视图出现在屏幕上(将其置于viewDidLoad
导致相同的行为)。然而,把它放在viewdidLayoutSubviews
导致一个非常奇怪的行为,视图不会出现在屏幕上,但试图动画,让我们说380起源。它什么都不做。
最好的部分还未到来:如果我隐藏视图,那么滑动动画(代码低于)
UIView.animateWithDuration(0.6, animations: {
self.testView.frame = self.whereToBe!
}, completion: {
finished in
if finished {
}
})
工作得很好。但是,尝试再次将其向下滑动并按下按钮上的文本字段resigningFirstResponder
(代码如下)
UIView.animateWithDuration(0.6, animations: {
//self.testView.frame = self.whereToBe!
self.testView.frame.origin.y = self.view.frame.height
}, completion: {
finished in
if finished {
self.view.endEditing(true)
//self.inputField.resignFirstResponder()
self.testView.hidden = true
}
})
显示了一个引人入胜的错误行为:视图从顶部滑动到当前位置。然而,在第二次按下按钮时,它工作得很好,它向下滑动但是在动画完成后它会重新出现在屏幕上。
你能帮我吗?
答案 0 :(得分:0)
只需设置
,即可将视图用作文本字段的inputViewself.textField.inputView = self.pickerView;
并避免所有这些自定义动画。