Ios 键盘正在将UIView推开

Ios 键盘正在将UIView推开,ios,swift,uiview,keyboard,uitextfield,Ios,Swift,Uiview,Keyboard,Uitextfield,在我的iOS应用程序中,我使用了几个UIView,其中一次只显示一个。我通过按钮在这些视图之间切换 显示新窗口: self.viewPage2.frame = CGRectMake(0,0,320,568) 隐藏视图: self.viewPage2.frame = CGRectMake(500,0,320,568) 其中一个UIView包含UITextField。当我点击ThisTextField时,键盘打开,但UIView被推离屏幕 我希望它与textField有关,所以我包含了源代码。我

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

显示新窗口:

self.viewPage2.frame = CGRectMake(0,0,320,568)
隐藏视图:

self.viewPage2.frame = CGRectMake(500,0,320,568)
其中一个UIView包含UITextField。当我点击ThisTextField时,键盘打开,但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的初始屏幕被显示,而没有我的UIView。此外,UITextField被推离屏幕

> P>因为您正在寻找AutoLayOutd解决方案,因此您应该考虑像

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

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


如果您希望有多个文本字段,最好将它们嵌入到scrollView或tableView中。它们会减轻您的痛苦。

虽然这不是一个解决方案,但当我关闭自动布局时,一切正常。当然,我想使用自动布局,所以仍然在寻找一个听起来合乎逻辑的答案。由于自动布局,约束会弄乱视图的定位!
self.myViewBottomSpaceConstraint.constant += 256;
[self.myView updateConstraints];