2011-12-12 89 views
0

我尝试从另一个线程添加视图到另一个视图,但它部分显示。但是,当我点击它的视图后,一切都变好了。看看这个:wasbecome为什么视图部分显示?

我添加视图这样:

SecretWordsFormView *swfv = [[SecretWordsFormView alloc] 
    initWithFrame:vc.view.frame 
    positions:positions 
    logonFormCtl:ctl 
    parent:parent poscount:numberOf]; 

[vc.view performSelectorOnMainThread:@selector(addSubview:) withObject:swfv waitUntilDone:YES]; 

为什么会出现这种情况?以及如何解决它?

回答

0

很奇怪,但我以后更换

[vc.view performSelectorOnMainThread:@selector(addSubview:) withObject:swfv waitUntilDone:YES]; 

这个

[vc.view addSubview:swfv]; 

现在全视角显示正常。

我不知道为什么会发生这种奇怪的事情。

+0

你在调用方法时是否在后台线程中?否则,不需要专门调用主线程。 –

+0

显然没有,但我认为。 – Alexander

+0

“没有必要” - 是的,但是如果我在主线程上调用方法'performOnMainThread ...',那么这个方法是不是实现了与'addSubview:'简单调用相同的方式? – Alexander

0

你试过setNeedsDisplay

+0

是的,我已经尝试过,但结果相同。 – Alexander

相关问题