2014-09-04 26 views
1

我正在嘗試更改UIView的背景顏色。這裏是我的代碼:iOS驗證uiview已更改顏色

UIView *myView = [self.view viewWithTag:21]; 
[self.view bringSubviewToFront:myView]; 
myView.backgroundColor = [UIColor yellowColor]; 

我驗證:

if ([myView.backgroundColor isEqual:[UIColor yellowColor]]) 
    { 
     NSLog(@"my view is yellow!"); 
    } 

,但在iPhone的屏幕永遠不會改變顏色。我在不同的項目中嘗試了相同的代碼,它工作得很好。你們誰都知道什麼是錯的?

+0

對不起,我正在清理我的代碼。我做了更正 – user2924482 2014-09-04 21:28:50

+0

你確定這發生在主線程? – rr1g0 2014-09-04 23:54:54

+0

我該如何檢查是否是主線程? – user2924482 2014-09-05 00:55:42

回答

0

那麼你正在做的事情,從那個代碼片斷不太清楚。

該代碼對於您正在嘗試執行的操作是絕對正確的,但我假設您由於程序中其他位置的代碼而遇到了該問題。

例如:如果您在某些時候隱藏了視圖,則不會得到顏色變化。如果視圖以某種方式「鎖定」,則會出現問題。或者如果這個操作在後臺線程上,也可能導致掛斷。

所以我會看看其餘的代碼,看看是否有其他東西阻礙它。

+0

我明白這只是奇怪。我甚至試圖重置視圖的位置「myView.frame = CGRectMake(0,0,280,323);」並不起作用。 – user2924482 2014-09-04 21:42:14

+0

腥事正在發生。但是如果沒有你所有的代碼,這將很難被調試 – Andrew 2014-09-05 01:39:17

0

確保您在主線程中進行UI更改,而不是完成處理程序或任何其他後臺任務。