我在UITableView
中显示UIPopoverController
。如果点击了另一个单元格,则此表格视图会隐藏/显示一些单元格(与this tutorial比较)。因为它是在popover中我想调整popover的大小。因此,我想使用preferredContentSize
的动画。
现在的问题是,如果我计算contentSize
我没有得到实际尺寸,因为之后会调用heightForRowAtIndexPath
。在重新加载表视图或检测表视图的高度变化后,我需要表视图高度。
如何获得表格视图的正确高度以适应弹出窗口的大小?
可能的解决方法:
但所有变通方法都有一些缺点/限制。 1号看起来并不好看,2号在横向模式下对我不起作用(其他内容可以忽略不计),3号看起来并不好看,其他内容也可以如果我意识到所有可能的情况,那么被忽视了,第4号就可以了。
仍在寻找更好的解决方案。
答案 0 :(得分:0)
只有手动计算高度才对我有用。我的代码在C#中,这就是我所做的:
我使用了一个类变量来存储实际高度。在viewDidLoad
我有这个
TableView.LayoutIfNeeded ();
height = TableView.ContentSize.Height;
this.PreferredContentSize = new SizeF (320f, height);
在showDatePickerCell
和hideDatePickerCell
中我计算新的高度并为弹出窗口设置它:
UIView.Animate (
0.25,
animation: () => {
height += 206f;
this.PreferredContentSize = new SizeF (320f, height);
}
);
现在,popover会根据需要扩展和缩小。