Tableview 单元格可重用性,切割标签文本

Posted

技术标签:

【中文标题】Tableview 单元格可重用性,切割标签文本【英文标题】:Tableview cell reusability, cutting label texts 【发布时间】:2017-11-30 08:31:50 【问题描述】:

Here I attached the gif file. Refer this

在我的表格视图中,我有一个带有自动布局的自定义 xib 单元格。当我运行项目时,遇到类似 gif 文件的问题。

这是我的表格视图功能

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 
    let cell = tableView.dequeueReusableCell(withIdentifier: "requestsCell", for: indexPath) as? RequestsTableViewCell
    cell?.backgroundColor = .clear

    let passengerName = cell?.viewWithTag(1) as! UILabel
    let bookingCreator = cell?.viewWithTag(2) as! UILabel
    let department = cell?.viewWithTag(3) as! UILabel
    let product = cell?.viewWithTag(4) as! UILabel
    passengerName.text = "Muhammed yasheed"
    bookingCreator.text = "Muhammed Yasheed"
    department.text = "Programming"
    product.text = "Flight"


    cell?.approvedView.isHidden = false
    cell?.cancelView.isHidden = true



    return cell!

 

【问题讨论】:

不相关,但表格视图单元格中的 viewWithTag 已过时。使用自定义类文件和插座。并强制解包类型转换为RequestsTableViewCell 以避免所有多余的问号,因为您最终还是强制解包单元格。 我知道。我正在使用自定义类文件和插座。在这里,我只是检查了自定义类是否有任何问题。 看起来像 xib/auto 布局问题。检查您的故事板以及您如何布置单元格。您可以为您的 UILabel 设置文本换行为 true 或 false。 @dirkgroten 只有两三个单元格是这样的。所有其他单元格工作正常。当我向下滚动并再次向上滚动时,单元格的标签变为正确的位置 【参考方案1】:

我终于找到了答案。只需在 cellForRowAt 索引路径中添加 cell?.layoutIfNeeded()

cell?.layoutIfNeeded()

【讨论】:

以上是关于Tableview 单元格可重用性,切割标签文本的主要内容,如果未能解决你的问题,请参考以下文章

Tableview,如何禁用可重用单元? (用于测试目的)

JavaFx表格视图TableView设置单元格可编辑

JavaFx表格视图TableView设置单元格可编辑

自定义 UITableview 单元格可访问性无法正常工作

如何在可重用的 tableView 单元格中更新 UITextfield 中的文本值,每个单元格中的值不同

滚动 UITableView 时自定义单元格中的 UITextField 文本正在更改