动态更改容器的高度

时间:2016-06-25 23:33:07

标签: ios xcode swift storyboard

enter image description here

我正在尝试动态更改容器的高度以匹配表视图的高度。我目前正在尝试使用Newsfeed View Controller中的prepareForSegue()。但是newsfeedContainer.frame.height = 10不起作用。

编辑:我正在尝试编辑约束。我使用以下代码收到以下错误。

错误:EXC_BAD_INSTRUCTION

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        if segue.identifier == "NewsfeedSegue" {
            print("NewsfeedSegue Triggered")
            var newsfeedTableController: NewsfeedTableViewController?
            newsfeedTableController = segue.destinationViewController as? NewsfeedTableViewController
            if newsfeedTableController != nil {
                containerHeightConstraint.constant = newsfeedTableController!.newsfeedTableView.frame.height
            }
        }
    }

编辑2:我使用表视图控制器的viewDidLoad()

中的以下代码完成了它
let viewController = parentViewController as? NewsfeedViewController
        viewController?.containerHeightConstraint.constant = newsfeedTableView.frame.height

1 个答案:

答案 0 :(得分:1)

如果您正在使用AutoLayout(而且几乎可以肯定是;它是默认设置),那么更改视图的帧通常不起作用。只要某些内容触发布局更新,约束(您指定的约束或系统生成的约束)就会接管并将帧重置为先前的值。

正如Brandon在评论中所说,如果你正在使用AutoLayout,你需要添加一个或多个约束,使这些约束出口,然后改变约束的常量值。