我正在从非ui线程/函数的uiscrollview上绘制一组图像。但它只在所有图像完成绘图后显示。为了绘制所有图像,我编写了一个函数,这就是所谓的非ui线程。我确实在函数
中写了这一行[self performSelectorOnMainThread:@selector(updateUI) withObject:nil waitUntilDone:NO];
并编写了下面给出的功能
- (void)updateUI
{
[myScrollView setNeedsDisplay];
}
但即使我看到控件传递给该函数,它也没有任何效果。现在该怎么办?
答案 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: