我有一个带有UILabel的自定义表格单元格。我想要的是两种方式。
1-找到包含长文本的Label的高度,并设置rowHeight以使整个文本可见。
2-使UILabel可滚动,以便用户可以用手向上/向下移动文本以读取整个字符串。
你能告诉我哪一个怎么做?
答案 0 :(得分:1)
我建议大多数情况下不要使用第一个选项,因为它可能会使你的表格单元变大。
至于第二个选项:您应该能够将UIScrollView作为子视图添加到表视图单元格中。滚动视图可以包含完整大小的文本标签,并允许您在固定大小的单元格中滚动它们。
答案 1 :(得分:1)
如果您的文本是静态的并且不会动态更改,则应使用第一个选项。您可以缓存结果,因此每当刷新表时,您都不必重新计算文本。您可以使用sizeWithFont:constrainedToSize:lineBreakMode来计算实际文字大小。
对于行高:您应该使用tableView:heightForRowAtIndexPath:而不是rowHeight,因为rowHeight将更改所有行的高度 - 而不仅仅是单个单元格。
远在桌面内的可滚动文本视图:在我看来 - 它在应用程序中看起来像一个廉价的解决方案,并使它有点业余。
答案 2 :(得分:1)
我们有任何关于如何做的例子吗?我是iphone新手,对不起 窃听。 - Panos 9分钟前
UIScrollView *scroller = [[UIScrollView alloc]initWithFrame:cell.frame];
scroller.contentSize = CGSizeMake(280, 100);
UILabel *test = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 100, 20)];
test.text = @"This would be your label.";
[scroller addSubview:test];
[cell addSubview:scroller];
这将在tablecell'cell'中生成UIScrollView和标签。这将有效,但我不认为这是最好的解决方案,因为它将是一个已经提供滚动的tableview内的滚动视图。我的建议是调整行数。