我是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。
感谢您的帮助。
截图:
细胞原型:
标题标签限制:
答案 0 :(得分:0)
您需要做两件事才能将文字保留在标签边界和单元格中。
estimatedRowHeight
和rowHeight
提供为UITableViewAutomaticDimension
。所以这没关系。或者,您可以使用以下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;