2012-09-21 46 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

相关问题