以编程方式创建的UILabel在iOS 6中不起作用

时间:2012-09-21 09:27:41

标签: ios uilabel ios6

我以编程方式在我的应用中创建了一些UILabel。在iOS 5中,这段代码运行良好。 在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];

2 个答案:

答案 0 :(得分:5)

问题是您创建的标签是设备屏幕的两倍宽,并设置少量文本以使其居中,从而导致文本偏离屏幕。记住CGRect使用的是点而不是像素。另外,我测试了你的代码并且不得不用“alloc”替换“new”以使其正常工作,我建议你也这样做。

完整正确的行是:

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

答案 1 :(得分:1)

致电[UILabel new]就像致电[[UILabel alloc] init],所以您应该像这样更改代码:

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