告诉我那个虫子是不是?我在开发人员的生活中创建了许多UITableView,以前从未见过。
我有习惯
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像素的偏移量设置为按钮大小时,一切都像是一种魅力!当我将按钮拉伸到ContentView大小时,为什么会有这么大的问题?你能解释一下吗?我欣赏每一个想法,评论和解释!