如何从非UI线程/功能(iPhone)强制UIScrollView的屏幕更新

时间:2010-01-13 14:14:03

标签: iphone nsthread

我正在从非ui线程/函数的uiscrollview上绘制一组图像。但它只在所有图像完成绘图后显示。为了绘制所有图像,我编写了一个函数,这就是所谓的非ui线程。我确实在函数

中写了这一行
[self performSelectorOnMainThread:@selector(updateUI) withObject:nil waitUntilDone:NO];

并编写了下面给出的功能

- (void)updateUI
{
[myScrollView setNeedsDisplay];
}

但即使我看到控件传递给该函数,它也没有任何效果。现在该怎么办?

4 个答案:

答案 0 :(得分:3)

根据我的经验,所有绘图操作必须在UI线程上执行,即使它们不可见,或者甚至在执行它们时添加到视图层次结构中。 如果你找到了解决方法,我很想知道,但是: - )

答案 1 :(得分:1)

好的,我有一个解决方案。即使我不喜欢这个解决方案,它的工作也很完美。我改变了我的功能。

- (void)updateUI
{
 for(UIView *subview in [myScrollView subviews]) 
 {
  [myScrollView bringSubviewToFront:subview];   
 } 
}

答案 2 :(得分:0)

也许您还应该致电setNeedsLayout和/或layoutIfNeeded

答案 3 :(得分:0)

尝试performSelectorOnMainThread:withObject:waitUntilDone:

之类的内容