自定义 UITableViewCell 与 2 UILabel 的调整大小

Posted

技术标签:

【中文标题】自定义 UITableViewCell 与 2 UILabel 的调整大小【英文标题】:Custom UITableViewCell with 2 UILabel's resized 【发布时间】:2010-03-31 10:53:40 【问题描述】:

我正在努力创建一个自定义 UITableViewCell(在 IB 中),它在左侧有一个 UIImageView,固定在左上角,然后是 2 个 UILabel 与之相邻,并排。所以单元格看起来像:

+---------------------------+
| IMAGE LABEL1    LABEL2  > |
+---------------------------+

我似乎不能做的是更改 LABEL1 的框架,使其适合包含的文本,然后确保 LABEL2 向左(或向右)移动,使其直接与它相邻,填充所有空间单元格的其余部分。

所以,专注于标签文本,我希望单元格看起来像这样:

+---------------------------+
| IMAGE Call 123456       > |
+---------------------------+

在我将 LABEL1 设置为“呼叫”并将 LABEL2 设置为“123456”之后:

- (UITableViewCell *)tableView:(UITableView *)tableView
         cellForRowAtIndexPath:(NSIndexPath *)indexPath

其实我可以用这个来调整 LABEL1 的大小:

CGSize sizeToMakeLabel = [label.text sizeWithFont:label.font]; 

label.frame = CGRectMake(label.frame.origin.x,
                         label.frame.origin.y, 
                         sizeToMakeLabel.width + 3,
                         sizeToMakeLabel.height);

现在文本“Call”的框架适合该文本(通过设置背景颜色确认),但文本“123456”似乎没有向左移动,无论我在 IB 中设置什么自动调整大小,或方法调整单元格视图的大小?我似乎还需要 +3 来确保“呼叫”看起来不像这个“C……”?

我使用 2 个标签,所以 LABEL1 可以用粗体表示。

【问题讨论】:

【参考方案1】:

偶然发现了这个 SO 帖子:

Placing UILabels next to each other programatically

确认我采用的相同方法 - 调整每个 UILabel 的框架。

【讨论】:

以上是关于自定义 UITableViewCell 与 2 UILabel 的调整大小的主要内容,如果未能解决你的问题,请参考以下文章

将多个自定义 UITableViewCell 链接到单个 xib

如何借助 AutoLayout 在自定义 UITableviewCell 中添加自定义 UIView(xib)?

自定义UITableViewCell(registerNib: 与 registerClass: 的区别)

如何在其中使用UIStackView自定义UITableViewCell的大小

自定义 UITableViewCell - UIImageView 的异步 UIImage

自定义uitableviewcell时,registerNib与registerClass的区别(转载)