告诉我是不是该bug?我在开发人员的生活中创建了许多UITableView,但以前从未见过。
我在Storyboard中创建了具有UITableViewCell
和UILabel
的自定义UIButton
。
class MyCell: UITableViewCell {
@IBOutlet weak var title: UILabel!
@IBOutlet weak var button: UIButton!
var row: Int? {
didSet {
guard let row = row else { return }
title.text = "row number: \(row)"
button.tag = row
}
}
@IBAction func onCellClick(_ sender: UIView) {
print(sender.tag)
}
}
还有我的UITableViewController
:
class ViewController: UITableViewController {
}
extension ViewController {
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 30
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! MyCell
cell.row = indexPath.row
return cell
}
}
按钮与单元格contentView
的完整大小对齐。
如果我在任何设备和模拟器上运行此代码,一切都会正常运行。当我在10.5英寸模拟器上运行此代码时,出现问题。当我单击单元格按钮print(sender.tag)
时,我打印了两个标签值:第一个正确单击了我,第二个最后一个可见的单元格在屏幕上。
当我将按钮大小设置为甚至1 px偏移量时,我发现一切都像灵符一样!当我将按钮拉伸到contentView大小时,为什么会有这么大的问题?你能解释一下吗?我感谢每一个想法,评论和解释!
答案 0 :(得分:1)
在Xcode 9.4.1上工作正常。如果您使用的是旧版本,请更新Xcode,然后再次检查。