ios - Xcode模拟器10.5寸表行错位

标签 ios swift uitableview

告诉我是不是这个错误?在我的开发生涯中,我创建了许多 UITableView,但以前从未见过。

我在 Storyboard 中创建了带有 UILabelUIButton 的自定义 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/

相关文章:

iphone - 使用动画在 UITableView 中添加一个单元格

ios - 适用于 iOS 的自定义键盘

ios - 用户界面 TableView : Nested Header sections

swift - 给定大小的集合作为 Swift 类型

ios - 导航栏上按钮的大小 Xcode9.4

ios - 将目标添加到 UITableview 中的 UITextField (Swift)

ios - 分配/初始化只读属性

ios - 如何获取谷歌地图标记的 UIView 实例?

class - swift - 在 vi​​ewController 中调用类函数

ios - tablecell 背景仅显示自定义单元格,但显示自定义单元格使其无法选择