1

我有一个带有 UILabel 的自定义表格单元格。我想要的可以通过两种方式完成。

1- 找到包含长文本的标签的高度并设置 rowHeight 以使整个文本可见。

2- 使 UILabel 可滚动,以便用户可以用手上下移动文本以阅读整个字符串。

你能建议我做哪一个吗?怎么做?

4

3 回答 3

1

我建议在大多数情况下不要使用第一个选项,因为这取决于字符串的长度,它可能会使表格单元格变大。

至于第二个选项:您应该能够将 UIScrollView 作为子视图添加到表格视图单元格中。滚动视图可以包含完整大小的文本标签,并允许您在固定大小的单元格中滚动它们。

于 2012-05-16T19:51:45.353 回答
1

如果您的文本是静态的并且不会动态更改,则应使用第一个选项。您可以缓存结果,因此无论何时刷新表格,您都不必重新计算文本。您可以使用sizeWithFont:constrainedToSize:lineBreakMode来计算实际的文本大小。

对于行高:您应该使用tableView:heightForRowAtIndexPath:而不是 rowHeight,因为 rowHeight 会改变所有行的高度 - 而不仅仅是单个单元格。

就表格内的可滚动文本视图而言:在我看来 - 它看起来像是应用程序中的廉价解决方案,并且有点业余。

于 2012-05-16T19:56:46.583 回答
1

我们有任何关于如何做到这一点的例子吗?我是 iphone 新手,抱歉打扰了。– 帕诺斯 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];

这将在表格单元“单元格”中创建一个 UIScrollView 和一个标签。这会起作用,但我认为这不是最好的解决方案,因为它将是已经提供滚动的 tableview 内的滚动视图。我的建议是调整行高。

于 2012-05-16T20:05:09.697 回答