【问题标题】:iOS UILabel width doesn't fit inside table celliOS UILabel 宽度不适合表格单元格
【发布时间】:2015-03-17 03:52:26
【问题描述】:

我是 iOS 开发新手。尝试将标签放入 uitableviewcell 时遇到问题。文本不断从单元格中流出。我添加了所有需要的约束,但它不起作用。 这是我的设置和代码:

Title label attributes: Number of lines-0, Line breaks-Word wrap

viewDidLoad():

self.tableView.estimatedRowHeight = 68.0;
self.tableView.rowHeight = UITableViewAutomaticDimension;

cellForRowAtIndexPath():

UILabel *titleLabel = (UILabel*)[cell viewWithTag:100];
titleLabel.text = @"Why does this long text get out of the cell? The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog.";

我使用的是 xcode 6.2 和 ios 8.2。

感谢您的帮助。

截图:

细胞原型:

标题标签限制:

【问题讨论】:

  • 表格视图本身怎么样。它有什么样的约束?这仅适用于您使用带有表格视图的 UIViewController,而不是表格视图已设置为正确宽度的 UITableViewController。
  • @rdelmar:我正在使用 UIViewController 并手动拖入 UITableView。我应该向表格视图添加哪些约束?
  • 如果你希望它是全屏的,请将其固定到超级视图的所有 4 个侧面。

标签: ios uitableview autolayout uilabel


【解决方案1】:

您需要做两件事才能将文本保持在标签边界和单元格中。

  1. 如果标签的宽度是固定的,那么在这种情况下,单元格的高度取决于标签的高度(源自其内容)。因为您已经将estimatedRowHeightrowHeight 提供为UITableViewAutomaticDimension。所以这没关系。
  2. 标签的宽度应该在到达单元格的最右边之前/直到它到达单元格的最右边。另外请确保标签的宽度是灵活的,那么它也应该从右侧钩住。

或者,您可以使用以下 API 编写代码,根据标签的内容计算标签的高度。这将确定单元格的高度。最后在创建单元格时将文本分配给标签。

对于 iOS 7 及更高版本:

#define LABELS_MAX_HEIGHT             10000.0f


CGSize constraintSize = CGSizeMake(label.frame.size.width, LABELS_MAX_HEIGHT);

NSAttributedString *attributedText = [[[NSAttributedString alloc] initWithString:text attributes:@{NSFontAttributeName: label.font}] autorelease];
        CGRect rect = [attributedText boundingRectWithSize:constraintSize
                                                   options:NSStringDrawingUsesLineFragmentOrigin
                                                   context:nil];
        strSize = rect.size;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-24
    • 1970-01-01
    • 2016-01-23
    • 2012-07-01
    • 2014-09-11
    • 1970-01-01
    • 2014-09-14
    相关资源
    最近更新 更多