我的iOS应用未显示长属性字符串。我在tableview中有一个包含此textView的单元格。当文本很长时,tableview暂时没有响应,但是当它加载时,文本没有显示。所有其他单元格显示正常。 textView可以很好地处理小文本字符串。
以下是代码:
descriptionCell = [tableView dequeueReusableCellWithIdentifier:@"CellAdDetailDescription"];
descriptionCell.bodyTextView.delegate = self;
NSMutableAttributedString *str = [[NSMutableAttributedString alloc] initWithString:self.ad.body];
UIFont *cellFont;
cellFont = [UIFont fontWithName:@"HelveticaNeue" size:16.0];
NSDictionary *attributesDictionary;
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
paragraphStyle.lineSpacing = 10;
attributesDictionary = @{NSParagraphStyleAttributeName : paragraphStyle , NSFontAttributeName: cellFont};
[str addAttributes:attributesDictionary range:NSMakeRange(0, str.length)];
descriptionCell.bodyTextView.attributedText = str;
我粘贴了长字符串here。我调试了str
正在加载包含所需文本。
这里有什么不对?
UITextView
中允许的最大字符串长度是多少?
编辑:很奇怪,在textView中尝试选择时,文本显示在放大镜中。我发布了一段视频here。
这是UITextView中的错误吗?
这是截图。底部的空白是textView。
答案 0 :(得分:8)
它可能与滚动有关。如果要显示所有文本(即文本视图扩展到需要的高度,表视图单元格也是如此),则滚动操作由表视图完成。如果文本视图较小,则必须滚动才能看到所有文本 - 这可能会导致与表视图冲突,这也是滚动视图。
有人建议您在添加属性文本之前禁用文本视图的滚动,然后再重新启用它。如果要在表视图中显示整个文本,则可以禁用文本视图滚动。在某些情况下,它仅在启用滚动时才有效。您也应该检查这种可能性。
答案 1 :(得分:5)
我也有这个问题(=非常长的归属文本没有显示在自动化UITableViewCell中的UITextView中)。我从这里和这个问题尝试了所有接受的答案:UITextView not loading/showing the large text?。没有人工作。
但是我发现 - 在我的情况下 - 它在设备上运行正常。因此,如果您仍在努力解决此类问题,请不要依赖iOS模拟器。
答案 2 :(得分:0)
你UITextView没有显示所有文本的原因是因为它太小,所以它会截断文本以适应它的框架。你可以按照步骤显示所有文字:
使用此功能计算适合其内容的TextView的大小 [textView sizeThatFits:CGSizeMake(textView.frame.size.width,CGFLOAT_MAX)]。height
之后,计算并设置TExtView的新框架(在uitableCell自定义中)