2

我以编程方式在我的应用程序中创建了一些 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];
4

2 回答 2

5

问题是您正在创建一个两倍于设备屏幕宽度的标签,并将少量文本设置为居中,从而导致文本不在屏幕上。请记住 CGRect 使用点而不是像素。此外,我测试了您的代码,必须将“new”替换为“alloc”才能正常工作,我建议您也这样做。

完整正确的行是:

label = [[UILabel alloc] initWithFrame:CGRectMake(0,0,popUpWidth,50)];
于 2012-09-21T09:33:27.303 回答
1

调用[UILabel new]就像调用一样,[[UILabel alloc] init]因此您应该像这样更改代码:

label = [[UILabel alloc] initWithFrame:CGRectMake(0,0,popUpWidth,50)];
于 2012-09-21T09:35:10.173 回答