动态调整UITableView和Today Extension的大小

时间:2014-09-23 01:03:54

标签: uitableview autolayout ios8 ios-app-extension

尝试根据内容大小动态调整UITableView的大小并失败后:

    self.tableViewPairedDevices.sizeToFit()

我尝试了这个,只要我的今日小工具足够高,可以完全显示它,它就能正常工作:

    var frame:CGRect = self.tableViewPairedDevices.frame
    frame.size.height = self.tableViewPairedDevices.contentSize.height
    self.tableViewPairedDevices.frame = frame

我的下一个挑战是让我的iOS 8 Today Widget根据UITableView大小调整大小,我几乎解决了这个问题:

    self.preferredContentSize = self.tableViewPairedDevices.contentSize;
    self.tableViewPairedDevices.setTranslatesAutoresizingMaskIntoConstraints(false)

问题是它们中只有一个一次工作,如果UITableView调整大小,扩展程序的视图不会,如果我注释掉调整UITableView大小的代码,今天扩展会获得成功调整大小(奇怪的是它知道UITableView的大小应该是多少,即使UITableView本身没有调整大小)但是UITableView没有。

关于如何实现这两件事的任何建议?

非常感谢!

2 个答案:

答案 0 :(得分:2)

通过在Extension的视图中禁用AutoLayout,我能够完美地完成上述代码

答案 1 :(得分:0)

不要忘记UITableView里面有Scroll。你需要以某种方式定义高度。

我向UITableView添加了一个高度约束,然后我将该值更新为contentSize.height

这很有效。