2012-09-21 68 views
2

我以編程方式在我的應用程序中創建了幾個UILabel。在iOS 5中,此代碼正常工作。 在iOS 6中,標籤似乎並未出現在屏幕上。以編程方式創建的UILabel不適用於iOS 6

我沒有看到任何警告,代碼肯定執行,但沒有標籤。

我試過尋找類似的問題,但找不到任何東西。我的標籤剛剛消失。

任何幫助表示讚賞。

float popUpWidth = 700.0 

//Add label 
UILabel *label; 
label = [[UILabel new] initWithFrame:CGRectMake(0,0,popUpWidth,50)]; 
label.text = @"Notes"; 
label.textAlignment = UITextAlignmentCenter; 
label.backgroundColor = [UIColor blackColor]; 
label.textColor = [UIColor whiteColor]; 

//Add label to view 
[self.view addSubview:label]; 

回答

5

問題是你正在創建一個兩倍於設備屏幕寬度的標籤,並且設置了少量的文本以居中,從而導致文本不在屏幕上。記住CGRect使用點而不是像素。另外,我測試了你的代碼,並且必須用「alloc」替換「new」才能正常工作,我建議你也這樣做。

完整的正確的路線應該是:

label = [[UILabel alloc] initWithFrame:CGRectMake(0,0,popUpWidth,50)]; 
+0

標籤的大小是正確的。這是在橫向模式下的iPad。 「新」是問題。應該是'alloc'。謝謝。 – Scoop

+0

我試圖將其標記爲正確,但似乎只允許我將其標記爲正確。所以當我將你的標記正確時,其他答案上的勾號消失。我可以標記兩個正確的嗎? – Scoop

+0

好點。我原以爲其他答案是第一個,因爲它出現在屏幕上的第一個原因。但我同意,將標記爲正確的第一個正確答案。再次感謝。 – Scoop

1

調用[UILabel new]就像調用[[UILabel alloc] init]所以你應該改變這樣的代碼:

label = [[UILabel alloc] initWithFrame:CGRectMake(0,0,popUpWidth,50)]; 
+0

輝煌。就是這樣。謝謝。 – Scoop

相關問題