2012-07-06 60 views
1

我是新來的objective-c和iPhone,但在過去做過很多java編碼。 關於訴基本的東西,我通常最終能夠找到答案,但不是這一個撕裂頭髮!對UI對象所做的更改未在iPhone模擬器中更新

我想做一個標籤的背景顏色變化,下面的代碼。無論我做什麼,在iPhone模擬器上運行它時都不會改變。那裏有一些設置,我覺得我在問一個非常愚蠢的問題,但實際上找不到答案。這是開發環境的設置問題嗎?

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view from its nib. 
    NSLog(@"setting label to black color"); 
    self.colourLabel.backgroundColor = [UIColor blackColor]; 
} 
+1

嘗試項目>清潔,然後iOS模擬器>重置內容和設置。 – Dima 2012-07-06 14:27:24

+0

什麼是'self.colourLabel'?一個出口? – 2012-07-06 14:29:17

+0

確保在Interface Builder中設置IBOutlet to UILabel。有時候,連接會中斷而沒有任何明顯的原因。 (儘管總有一些)。 – tGilani 2012-07-06 16:12:35

回答

0

你爲什麼不作類型的UILabel的一個IBOutlet,把它掛在界面生成器中的標籤並做:

yourLabel.backgroundColor =的UIColor whateverColor]

您是否將colorLabel設置爲屬性?因爲你不需要...除非你有兩個單獨的類,你想相互溝通。

+0

謝謝。我使用的是IBOutlet類型的UILabel,並且我已經綜合了它,但是我忘記了將我用代碼放入的標籤連接起來。在同一時間學習Objective-C和相當不直觀的界面構建器都有點混亂。無論如何非常感謝您的快速回復,這是一個偉大的社區! – user1506992 2012-07-06 16:19:04

+0

很高興我能幫到你。當你第一次開始時Objective-C有點混亂,但你會習慣它。確保投票,如果它是你正在尋找:) – Imirak 2012-07-06 16:23:17

+0

剛剛嘗試過,但它說,我需要更多的聲譽,才允許這樣做! – user1506992 2012-07-06 16:23:48

0

記住,在Objective-C將消息發送到nil對象是細的,所以問題可能是self.coulourLabel仍然nil在那個時候。

如何以及在哪裏實例化它?你是否設置了IBOutlet

0

只是覺得我會留下一個答案,強調@Dima在這個問題的評論 - 即項目>清潔,然後iOS模擬器>重置內容和設置的建議。

我剛剛解決了在代碼中創建的UIButton時發生的類似問題,因此不可能是IBOutlet問題。當我在模擬器中運行時,我對代碼所做的更改(甚至完全刪除了屬性)並未顯示出來,即使在我的設備上運行正常。我曾認爲做一次乾淨就夠了,但直到我開始重置內容和設置時,它纔開始按我的預期行事。

希望有人認爲這有用...