ios - 在哪里可以获得 UITableViewCell 内使用的标签的正确大小

标签 ios swift uitableview

我有一个包含labell的自定义TableViewCell。我想在显示单元格时检查标签的大小以确定文本是否被截断。我找到了处理这个主题的不同主题,但没有任何对我有用。我尝试检查 layoutSubviews

中的大小
override func layoutSubviews() {
    super.layoutSubviews()

    print(label.bounds.size.width)
}

并实现 willDisplay 委托(delegate)

 override func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
.....
print(cell.label.bounds.size.width)
}

在加载 View 之前,我总是获得相同的标签宽度(在界面生成器上设置的宽度)

编辑:

如果我重新加载 tableView,我会得到正确的大小。您知道原因吗?

最佳答案

为了访问 CustomCell 的属性,您必须执行类似的操作:

let customCell = cell as! YourCustomCellClass
print(customCell.lbl_test.frame.size.width)

此方法可以在您的“willDisplay 单元格”中实现,如果您想单独访问每个单元格,那么您必须为每个单元格创建适当的 IndexPath

关于ios - 在哪里可以获得 UITableViewCell 内使用的标签的正确大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49301154/

相关文章:

objective-c - _Nullable 和 _Nonnull 是否对 Swift 互操作以外的任何东西有用?

ios - 扫描相机中的二维码和条形码以及从图像库中快速选取的图像

ios - 将 NSArray 拆分为 NSString

swift - 是否可以在不声明的情况下在 Swift 中抛出 "RuntimeException"?

ios - 什么是iOS sleep 功能

iOS 设置 UITableView 初始扩展

ios - 从 application(.... launchOptions : [NSObject: AnyObject]? ) 处的 launchOptions 获取值

ios - 使用模式弹出窗口将行插入到 tableView

swift - TableView didSelect 在 Swift 中响应问题

ios - 适用于 ios sdk 的易于使用且开源的条码扫描器有哪些?