动态调整 UITableView 和 Today Extension 的大小
Posted
技术标签:
【中文标题】动态调整 UITableView 和 Today Extension 的大小【英文标题】:Resize UITableView and Today Extension dynamically 【发布时间】:2014-09-23 01:03:53 【问题描述】:在尝试根据其内容大小动态调整我的 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 大小的代码,今天扩展会成功调整大小(奇怪的事情是它知道 UITableView 应该是什么大小,即使 UITableView 本身没有调整大小)但 UITableView 不知道。
关于如何实现这两个目标的任何建议?
非常感谢!
【问题讨论】:
【参考方案1】:通过禁用扩展视图上的自动布局,我能够使上述代码完美运行
【讨论】:
【参考方案2】:别忘了 UITableView 里面有一个 Scroll。您需要以某种方式定义高度。
我向 UITableView 添加了一个高度约束,然后将该值更新为 contentSize.height
这行得通。
【讨论】:
以上是关于动态调整 UITableView 和 Today Extension 的大小的主要内容,如果未能解决你的问题,请参考以下文章
如何根据 UITableView 滚动动态调整 UITableViewCell 的大小?
动态调整UITableView的大小,该大小将显示为不可滚动的内容列表