iOS自定义UIView作为输入键盘

时间:2015-03-17 12:18:52

标签: ios swift uiview textfield uiviewanimation



在尝试将自定义视图用作文本字段的输入键盘时,我遇到了很多问题。
设置非常简单(用于测试):我有一个带有一个按钮的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
                }
        })

显示了一个引人入胜的错误行为:视图从顶部滑动到当前位置。然而,在第二次按下按钮时,它工作得很好,它向下滑动但是在动画完成后它会重新出现在屏幕上。
你能帮我吗?

1 个答案:

答案 0 :(得分:0)

只需设置

,即可将视图用作文本字段的inputView
self.textField.inputView = self.pickerView;

并避免所有这些自定义动画。