IOS - 自调整单元格问题

标签 ios uitableview

我遇到了使用自动布局自动调整单元格大小的问题。我的目标是实现一个看起来像这样的表格:

| Title_label (time)      $price |
|                                |
|Some long description. More     |
|description.                    |
|                                |

当标题很长时,它应该是这样的:

| This title is (time)    $price |
| really long                    |
|                                |
|Some long description. More     |
|description.                    |
|                                |

因此,当标题变大时,只要时间和价格之间有 8 个点的空间,它就会将时间标签推到右边。如果它更大,它应该换行到下一行。

我在表格 View 之前用自动调整大小的单元格做过,但那里只有一个扩展标签,而不是两个。

我实现了行的自动高度:

self.tableView.rowHeight = UITableViewAutomaticDimension
self.tableView.estimatedRowHeight = 100

这是我的约束的样子:

|     8px
|8px title 8px time >=8px       price|
|     8px                            |
|8px description                  8px|
|     8px                            |

价格时间和标题之间也存在最高对齐。

我已将标题和描述的行数设置为 0。 我已将时间和价格的压缩阻力设置为 1000(因为标题与它们重叠)。

但是标题标签不会换行到下一行。它以....结束。更多的是描述标签也太小了。当我滚动表格时,描述的高度是固定的。

我尝试在返回单元格之前添加 cell.layoutIfNeeded() 。然后单元格布局变得困惑(标题被剪裁)但是当我滚动电视时一切正常。

有什么想法吗?

编辑: 这是不是因为标题标签紧挨着其他标签,不知道什么时候应该换行?

我试过了

override func layoutSubviews() {
        self.nameLabel.preferredMaxLayoutWidth -= (durationLabel.frame.width + priceLabel.frame.width + 16)
        super.layoutSubviews()
    }

告诉标题标签它的最大宽度是多少,但它把事情搞砸了。

最佳答案

就像你一样,我已经将标题和描述的行设置为 0,并且我已经像这样设置了你的单元格:

|     8px
|8px title 8px time >=8px       price|
|     8px                            |
|8px description                  8px|
|     8px                            |

然后,我设置了压缩和拥抱属性:

标题:

  • 拥抱:H:251,V:252
  • 压缩:H:999,V:1000

时间:

  • 拥抱:H:253,V:251
  • 压缩:H:1000,V:750

价格:

  • 拥抱:H:252,V:251
  • 压缩:H:1000,V:750

描述:

  • 拥抱:H:251,V:251
  • 压缩:H:750,V:999

一切正常

关于IOS - 自调整单元格问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31534582/

相关文章:

ios - CollectionView 与 TableView(快速)

ios - Swift 2.0 : Variable was never mutated, 考虑改成让

ios - 移除 UINavigationController 上的渐变

objective-c - ivar 的分配不起作用

ios - 坚持以编程方式将目标添加到按钮

ios - 来自背景图像颜色百分比 iOS 的状态栏样式

ios - UITableViewCell 编辑模式中的左圆出现在 iOS8

ios - viewForHeaderInSection 未在 tableview 重新加载时调用

ios - 使用 UITableView 发出分页

ios - 填充 NSString 在 UITableViewCell 中不起作用