ios - Xcode模拟器10.5寸表格行位置错误
问题描述
告诉我是不是那个bug?我在开发人员的生活中创建了许多 UITableView,但以前从未见过。
我有自定义UITableViewCell
并在 Storyboard 中创建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 px 偏移设置为按钮大小时,一切都像魅力一样!当我将按钮拉伸到 contentView 大小时,为什么会有这么大的问题?你能解释一下吗?我感谢每一个想法、评论和解释!
解决方案
在 Xcode 9.4.1 上工作正常。如果您有旧版本,请更新 Xcode 并再次检查。
推荐阅读
- azure - 如何使用 Azure 构建代理部署到内部服务器?
- c - 当我尝试换行时,它没有正确插入
- javascript - Dynamobd 错误:即使我输入了实际条目 ID,扫描结果也不会过滤到 HASH
- php - 你能在 PHP 中为 Firebase 获得一个短暂的 OAuth 2.0 访问令牌吗?
- c# - 如何将 IndexOf 与来自 mongodb c# 的 Builders 过滤器一起使用
- java - 当人脸位于所需帧中时,如何实时启动 ML Kit 人脸检测
- angular - Http调用在角度通用中进行了两次
- php - 将 HTML 标记添加到所见即所得编辑器
- java - 重新获取 BufferedImage 的先前 Graphics2D 实例
- wordpress - 如何在模板 Wordpress 中插入标题属性