我正在使用 UITextView
显示来自的文本 xml
。我解析了xml并将文本存储在一个 NSArray
从那里我将它添加到一个 UITextview
在我的代码中。
问题: 当我运行代码时,textview显示为空或部分文本,当我尝试滚动textview时,整个文本显示。
我加了 UITextview
到了 UIView
。
我发现它很奇怪,谷歌搜索它,但找不到很多帮助我的答案。 有人可以回复我解决问题
TNQ
我正在使用 UITextView
显示来自的文本 xml
。我解析了xml并将文本存储在一个 NSArray
从那里我将它添加到一个 UITextview
在我的代码中。
问题: 当我运行代码时,textview显示为空或部分文本,当我尝试滚动textview时,整个文本显示。
我加了 UITextview
到了 UIView
。
我发现它很奇怪,谷歌搜索它,但找不到很多帮助我的答案。 有人可以回复我解决问题
TNQ
找到了简单的解决方案
有同样的问题。当您将文本放入不可见的UITextView时,它不会绘制文本。
我把我的UITextView关闭屏幕并像这样动画:
[UIView animateWithDuration:0.3 delay:0.0 options:UIViewAnimationCurveEaseOut animations:^{
self.contentView.center = CGPointMake(self.contentView.center.x + move * (self.contentView.frame.size.width /2), self.contentView.center.y);
self.textView.frame = self.textView.frame; // <<<--- ADD THIS LINE
} completion:^(BOOL finished) {
if (finished) {
}
}];
当您重新设置textview的框架时,它会重新绘制它的文本。因此,您需要做的就是在UITextView进入屏幕之前添加我在上面标记的行。
干杯
UITextView继承自UIScrollView,因此只需滚动它。
[detailsTextView setContentOffset:CGPointMake(0, 1) animated:YES];
我通过清除textview并将文本再次添加到textview解决了这个问题,我不知道确切的基础,但我的问题已经解决了。 在我的情况下: 我点击按钮时将textview的框架从外部更改为视图。单击按钮时textview不显示内容,滚动显示内容。
通过从textview中删除文本并在单击按钮时重新输入文本,我解决了问题。
UItextView
继承自 UIScrollView
。这意味着它具有滚动功能。因此,如果的内容 UITextView
小到足以适合它的框架,它不需要滚动。
但是,如果它足够大,你需要滚动 UITextView
。
这有道理吗?
有关更多信息,请参阅类的参考 的UITextView
确保你设置textview文本的方法被正确调用。你分配给文本视图的字符串是正确的字符串格式(如果不是这样保留它)。
有机会 空格 和/或 换行符 是否在实际文本之前。在将这些字符分配给文本视图之前修剪它们。
NSCharacterSet *charset = [NSCharacterSet whitespaceAndNewlineCharacterSet];
NSString *text = [parsedString stringByTrimmingCharactersInSet:charset];
textview.text = text;
请在加载textView时尝试使用它
NSAttributedString *oldtext = objTextView.attributedText;
[objTextView removeFromSuperview];
objTextView.attributedText = oldtext;
[self.view addSubview:objTextView];
在我的情况下,我的文字被归因
当您完成解析XML的操作时,您是否确保在主线程上发生了更新?
UIKit仅在主线程上进行更新,因此所做的任何更新只会在您下次触摸对象并强制更新时显示。
作为一种正确的方法的例子。
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
[self parseXMLOffMainThread];
dispatch_async(dispatch_get_main_queue(), ^{
self.myTextView.text = parsedText;
});
});