动态调整UITableView和Today Extension的大小



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

    self.tableViewPairedDevices.sizeToFit()

我试过这个,只要我的Today Widget足够高,可以完全显示它,它就很好:

    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大小的代码,Today扩展就成功地调整了大小(奇怪的是,它知道UITableView应该是什么大小,即使UITableView本身还没有调整大小),但UITableView没有。

关于如何实现这两件事,有什么建议吗?

非常感谢!

我能够通过在扩展的视图上禁用自动布局来使上面的代码完美地工作

别忘了UITableView内部有一个Scroll。你需要以某种方式定义高度。

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

这是有效的。

最新更新