Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios SetNeedsLayout()导致其他视图不更新_Ios_Swift_Autolayout - Fatal编程技术网

Ios SetNeedsLayout()导致其他视图不更新

Ios SetNeedsLayout()导致其他视图不更新,ios,swift,autolayout,Ios,Swift,Autolayout,为什么self.view.setNeedsLayout函数会使文本字段的位置出错?它会导致文本字段不移动。布局更新是否太晚?如果是的话,我该如何解决这个问题。我尝试了self.view.setlayoutifneed,但也不起作用 设置textField的帧原点时是否调用过该行?您是否尝试在那里设置断点?如何将文本字段添加到视图中?对我来说,它似乎有一些约束约束,这就是为什么改变框架不起作用。是的,有一些约束添加到它。如果未调用self.view.setNeedsLayout,它将正确移动。这就

为什么self.view.setNeedsLayout函数会使文本字段的位置出错?它会导致文本字段不移动。布局更新是否太晚?如果是的话,我该如何解决这个问题。我尝试了self.view.setlayoutifneed,但也不起作用

设置textField的帧原点时是否调用过该行?您是否尝试在那里设置断点?如何将文本字段添加到视图中?对我来说,它似乎有一些约束约束,这就是为什么改变框架不起作用。是的,有一些约束添加到它。如果未调用self.view.setNeedsLayout,它将正确移动。这就是为什么我认为布局发生得太晚了。这与布局的时间无关。如果使用自动布局,手动设置框架将不起作用。您必须调整自动布局约束,而不是设置框架。??我不明白为什么没有setNeedsLayout它会工作。
func keyboardWasShown(aNotification: NSNotification)    {
    self.view.setNeedsLayout() /* */

    var info = aNotification.userInfo as NSDictionary

    var kbSize = info.objectForKey(UIKeyboardFrameBeginUserInfoKey).CGRectValue().size

    if self.containerViewController.frame != mainFrame! {
        self.containerViewController.frame = mainFrame!
    }

    var aRect = self.view.frame as CGRect

    aRect.size.height = aRect.size.height - kbSize.height

    if CGRectContainsPoint(aRect, self.textField.frame.origin) == false  {

        self.textField.frame.origin.y = aRect.height - 30
    }
}