2011-05-31 56 views
0

我有一个UILabel的UILabel没有显示文本

IBOutlet UILabel *lblMissionLevel; 
[lblMissionLevel setFrame:CGRectMake(0, -55 , 177.0, 43.0)]; 

UIView *view= [[UIView alloc] initWithFrame:CGRectMake(11.0, 55.0, 480, 500)]; 
[view addSubview:lblMissionLevel]; 

和我设置使用

lblMissionLevel.text = @"My String"; 

我的问题是文本,大部分时间它显示正确的文本,但在有些时候显示简单

Label 

我不能追查问题,因为它不一致。

请帮忙。如果有人需要进一步澄清请不要问..

+3

使用*此*代码时,您的标签将始终显示为“我的字符串”。也许你应该给我们一些“现实生活”的代码:) – cem 2011-05-31 11:56:55

+0

我认为uilabels的默认文本是“标签”,你可以看到你的笔尖,如果你已经创建它在笔尖。我猜如果它的文本设置条件不符合,它会显示这个默认文本“标签”? – 2011-05-31 11:57:38

+0

当我首先看到你的问题时,我以为你并没有将出口连接到文件所有者或某事,但正如你所说“大多数时候它显示的是正确的文本”,我不能真正说出有什么问题,除非我查看更多代码。 – fardjad 2011-05-31 11:59:19

回答

1

如果这是间歇性的,则可能的原因是内存不足警告读了起来,这将导致任何非活动视图卸载。如果你没有处理重新加载这个视图,你会看到默认的标签标题,一旦视图再次激活(它会加载,但你对标签标题等进行的初始化可能不会被调用)。

我有同样的事情,直到我注意到内存警告级别1,然后它会发生。我添加了代码以正确地重新加载视图(正确设置所有UI控件标题),并且它都很好!

+0

感谢兄弟......我得到了一个内存警告级别2.在我解决它之后,所有的工作都完美无缺.... – Aaron 2011-07-21 12:07:16

0

我有时有这样的问题,你最好申请(在你的类头)

@property(nonatomic, retain) UILabel *lblMissionLevel;

然后确保你打电话之前self.lblMissionLevel.text = @"My String";

记得在陈述课程实施后合成

0

试试这个上面的行,很可能你的伊娃没有从你的笔尖设置

NSAssert(lblMissionLevel, @"lblMissionLevel is nil"); 

然后对如何使用NSAssert非常方便

0

您是否知道为您的UILabel设置负值。

[lblMissionLevel setFrame:CGRectMake(0, -55 , 177.0, 43.0)]; 

尝试在设置字符串值后打印lblMissionLevel.text的内容。

lblMissionLevel.text = @"My String"; 
NSLog(@"My Label Text %@", lblMissionLevel.text); 

另外检查图纸位置UILabel