告诉我是不是那个虫子?我在开发人员的生活中创建了许多UITableView,以前从未见过。
我在故事板中创建了自定义的UITableViewCell
和UILabel
。
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)
}
}
以及我的
UIButton
: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
}
}
按钮与单元格的a
UITableViewController
全尺寸对齐。如果我在任何设备和模拟器上运行此代码,一切都可以正常工作。当我在10.5英寸模拟器上运行此代码时,出现问题。当我点击单元格按钮时,打印两个标记值:第一个是我点击的正确的,第二个是屏幕上最后一个可见的单元格。
我发现,当我设置了甚至1像素的偏移量按钮大小一切工作像一个魅力!为什么当我将按钮拉伸到contentView大小时会有这么大的问题?你能解释一下吗?我很感激你的每一个想法、评论和解释!
最佳答案
在Xcode 9.4.1上运行良好。如果您有旧版本,请更新Xcode并再次检查。