我正在尝试动态更改容器的高度以匹配表视图的高度。我目前正在尝试使用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
答案 0 :(得分:1)
如果您正在使用AutoLayout(而且几乎可以肯定是;它是默认设置),那么更改视图的帧通常不起作用。只要某些内容触发布局更新,约束(您指定的约束或系统生成的约束)就会接管并将帧重置为先前的值。
正如Brandon在评论中所说,如果你正在使用AutoLayout,你需要添加一个或多个约束,使这些约束出口,然后改变约束的常量值。