我如何更新滚动视图?

时间:2010-06-29 18:59:15

标签: iphone objective-c

我,对不起我的英语我不是很好,我在objective-c中编码,我尝试在uiscrollview中设置文本并立即更新scrollview的内容。我有一个循环,我在该循环中使用方法[uiscrollview setText:]设置文本,但文本仅显示在循环结束时的滚动视图中...

感谢 亚历

2 个答案:

答案 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)

  1. 因为UIScrollView有文本属性吗?..你的意思是UITextView吗?

  2. 如果循环在主线程中,那么UI可能只在完成方法后才会更新(内置循环) - 就像你写的一样。可能的解决方案可能是在后台线程中使用循环执行方法(例如[self performSelectorInBackground:@selector(updateScrollViewInLoop) withObject:nil];),并在循环内部更新主线程中的滚动视图([uiscrollview performSelectorOnMainThread:@selector(setText:) withObject:text waitUntilDone:YES];)。

  3. 您也可以在更新文本后立即添加[uiscrollview setNeedsDisplay];行。我不确定它会有什么帮助,因为上面的第二点,此外,我认为一旦你改变了滚动视图的内容,就会在后台调用这一行......