我有一个表格视图控制器,可以在viewDidLoad
之后设置它的内容。设置新内容时,我会计算preferredContentSize
。在我呈现popover之前,我可以查询我的视图控制器的preferredContentSize
,这是正确的。但是在演示之后我得到了popover的标准尺寸(320x480)。如果我将setPopoverContentSize:animated:
与之前查询的值一起使用,一切正常。
我现在的问题是为什么它在开始时不尊重preferredContentSize
权利?我做错了什么?
答案 0 :(得分:6)
现在我又遇到了同样的问题。如果我将我的桌子高度计算放入viewWillAppear
而不是它的工作:
public override void ViewWillAppear (bool animated)
{
base.ViewWillAppear (animated);
TableView.LayoutIfNeeded ();
this.PreferredContentSize = new SizeF (320f, TableView.ContentSize.Height);
}
代码在C#中,但您可以轻松地将其转换为Objective-C或Swift。
答案 1 :(得分:1)
我将测试代码转换为Swift 2.0。
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
tableView.layoutIfNeeded()
preferredContentSize.height = tableView.contentSize.height
}