我正在尝试动态更改容器的高度以匹配表视图的高度。我目前正在尝试使用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
最佳答案
如果您使用的是自动版式(几乎可以肯定,这是默认设置),则更改视图的框架通常不起作用。一旦触发布局更新,约束(您指定的约束或系统生成的约束)就会接管并将框架重置为其先前值。
正如布兰登在评论中所说,如果您使用的是自动版式,则需要添加一个或多个约束,使这些约束输出,然后更改约束的常量值。
关于ios - 动态更改容器的高度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38033869/