键盘正在推动UIView

时间:2015-08-28 09:56:55

标签: ios swift uiview keyboard uitextfield

在我的iOS应用程序中,我使用了几个UIView,其中一次只显示1个。通过按钮,我在这些视图之间切换。

显示新内容:

self.viewPage2.frame = CGRectMake(0,0,320,568)

隐藏视图:

self.viewPage2.frame = CGRectMake(500,0,320,568)

其中一个UIViews包含一个UITextField。当我单击此文本字段时,键盘会打开,但UIView会被推离屏幕。

我希望它与textField有关,所以我已经包含了这个源代码。我有一个来自

的代表
@IBOutlet weak var textFieldSearchValue: UITextField!

func textFieldDidEndEditing(textField: UITextField) {
    textFieldSearchValue.resignFirstResponder();
}

func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
    return true;
}

func textFieldShouldReturn(textField: UITextField) -> Bool {

    textFieldSearchValue.resignFirstResponder();
    return true;
}

在ViewDidLoad中:

textFieldSearchValue.delegate = self

所以奇怪的是,当打开键盘时,UIView被向上推,显示来自ViewController的初始屏幕,没有我的UIViews。 UITextField也被推离了屏幕!

1 个答案:

答案 0 :(得分:0)

由于您正在寻找自动布局解决方案,因此您应该考虑像

这样的帧更新
self.viewPage2.frame = CGRectMake(500,0,320,568)
自动布局不支持

您必须更新上述约束才能实现。 例如:

self.myViewBottomSpaceConstraint.constant += 256;
[self.myView updateConstraints];

如果您希望将多个文本字段更好地嵌入到scrollView或tableView中。他们会减轻你的痛苦。