我正在开发一个需要相当大的UITableViewCell
s(其中包含大块文本)的项目。在iOS 9中,如果这些单元格超过2048的高度则不成问题。但是,iOS 10似乎不太宽容。每当一个单元格到达那个高度时,UITableView
要么呈现不正确,要么以其他方式出现故障(例如没有滚动)。
我发现这可以在一个简单的项目中重现。首先,创建一个显示单个(动态)UIViewController
的<{1}}:
UITableViewCell
然后,使用包含单个class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
@IBOutlet weak var tableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
self.tableView.estimatedRowHeight = 44.0
self.tableView.rowHeight = UITableViewAutomaticDimension
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 1
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "ExampleCell", for: indexPath)
cell.textLabel?.text = "Content"
return cell
}
}
的原型单元创建一个UITableView
,其中包含5个约束:top(0),left(0),right(0),height(2048),bottom( 0)(底部优先级较低)。由于缺乏声誉,我似乎无法发布图片,因此可以在此处找到UIView
设置的图片:http://i.imgur.com/nGF8vQI.png
可以在此处看到相同设置的并排,高度为2047 vs 2048:http://imgur.com/a/amxqp
具有高度为2048的单元格的UITableView
实际上没有那个高度;一旦向下滚动,UITableView
松紧带就会向上移动。 2047(或更少)版本按预期工作。
这种行为是苹果公司的故意,还是其他不妥之处?