我,对不起我的英语我不是很好,我在objective-c中编码,我尝试在uiscrollview中设置文本并立即更新scrollview的内容。我有一个循环,我在该循环中使用方法[uiscrollview setText:]设置文本,但文本仅显示在循环结束时的滚动视图中...
感谢 亚历
答案 0 :(得分:0)
首先需要构建字符串,然后调用set text。首先设置文本清除现有文本。另外,我假设你的意思是UITextView(UIScrollView的子类),因为它有一个'text'属性。尝试:
NSString *text = [NSString string];
for (NSString *line in lines)
{
text = [text stringByAppendingString:line];
}
[self.textScrollView setText:text];
答案 1 :(得分:0)
因为UIScrollView有文本属性吗?..你的意思是UITextView吗?
如果循环在主线程中,那么UI可能只在完成方法后才会更新(内置循环) - 就像你写的一样。可能的解决方案可能是在后台线程中使用循环执行方法(例如[self performSelectorInBackground:@selector(updateScrollViewInLoop) withObject:nil];
),并在循环内部更新主线程中的滚动视图([uiscrollview performSelectorOnMainThread:@selector(setText:) withObject:text waitUntilDone:YES];
)。
您也可以在更新文本后立即添加[uiscrollview setNeedsDisplay];
行。我不确定它会有什么帮助,因为上面的第二点,此外,我认为一旦你改变了滚动视图的内容,就会在后台调用这一行......