2011-12-12 165 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