告诉我是不是那个虫子?我在开发人员的生活中创建了许多UITableView,以前从未见过。
我在故事板中创建了自定义的UITableViewCellUILabel

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
    }
}

按钮与单元格的aUITableViewController全尺寸对齐。
如果我在任何设备和模拟器上运行此代码,一切都可以正常工作。当我在10.5英寸模拟器上运行此代码时,出现问题。当我点击单元格按钮时,打印两个标记值:第一个是我点击的正确的,第二个是屏幕上最后一个可见的单元格。
我发现,当我设置了甚至1像素的偏移量按钮大小一切工作像一个魅力!为什么当我将按钮拉伸到contentView大小时会有这么大的问题?你能解释一下吗?我很感激你的每一个想法、评论和解释!

最佳答案

在Xcode 9.4.1上运行良好。如果您有旧版本,请更新Xcode并再次检查。

10-08 05:58
查看更多