告诉我是不是这个错误?在我的开发生涯中,我创建了许多 UITableView,但以前从未见过。
我在 Storyboard 中创建了带有 UILabel
和 UIButton
的自定义 UITableViewCell
。
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)
时,打印出两个标签值:第一个是我点击的正确值,第二个是屏幕上的 last visible cell。
我发现当我为按钮大小设置 1 px 偏移量时,一切都非常有效!当我将按钮拉伸(stretch)到 contentView 大小时,为什么会出现这么大的问题?你能解释一下吗?我感谢每一个想法、评论和解释!
最佳答案
在 Xcode 9.4.1 上工作正常。如果您有旧版本,请更新 Xcode 并再次检查。
关于ios - Xcode模拟器10.5寸表行错位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52055709/