何时尊重内容大小?
问题描述:
我有一个表格视图控制器,它可以在viewDidLoad
之后设置它的内容。在设置新内容时,我计算了preferredContentSize
。在展示popover之前,我可以查询我的视图控制器的preferredContentSize
,这是正确的。但是在演示之后,我得到了popover的标准大小(320x480)。如果我使用setPopoverContentSize:animated:
和之前查询的值,一切正常。何时尊重内容大小?
我现在的问题是为什么在开始时不尊重preferredContentSize
?我做错了什么?
答
现在我又遇到了同样的问题。如果我把我的桌子高度计算到viewWillAppear
比它的工作原理:
public override void ViewWillAppear (bool animated)
{
base.ViewWillAppear (animated);
TableView.LayoutIfNeeded();
this.PreferredContentSize = new SizeF (320f, TableView.ContentSize.Height);
}
的代码是C#,但你可以很容易地将其转换成Objective-C的或斯威夫特。
答
我将测试代码转换为Swift 2.0。
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
tableView.layoutIfNeeded()
preferredContentSize.height = tableView.contentSize.height
}
这个解决方案对我来说很完美。谢谢:D:D:D:D – 2015-08-21 09:13:03