我有一个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
我无法追踪问题,因为它不一致。
请帮忙。如果有人需要进一步澄清,请询问..
答案 0 :(得分:1)
如果这是间歇性的,那么可能的原因是内存不足警告,这将导致任何非活动视图卸载。如果您没有处理重新加载此视图,一旦视图再次变为活动状态,您将看到默认的标签标题(它将加载但您可能没有调用标签标题等的初始化)。
我有同样的事情,直到我注意到内存警告级别1然后它会发生。我添加了代码以正确地重新加载视图(正确设置所有UI控件标题),这一切都很好!
答案 1 :(得分:0)
我有时会遇到这个问题,你最好申请(在你的班级标题中)
@property(nonatomic, retain) UILabel *lblMissionLevel;
然后确保在self.
lblMissionLevel.text = @"My String";
记得在陈述类实现后合成
答案 2 :(得分:0)
在上面这一行尝试这个,很可能你的ivar没有从你的笔尖设置
NSAssert(lblMissionLevel, @"lblMissionLevel is nil");
然后阅读如何使用NSAssert非常方便
答案 3 :(得分:0)
您是否知道为UILabel
设置负值。
[lblMissionLevel setFrame:CGRectMake(0, -55 , 177.0, 43.0)];
设置字符串值后,尝试打印lblMissionLevel.text的内容。
lblMissionLevel.text = @"My String";
NSLog(@"My Label Text %@", lblMissionLevel.text);
同时检查UILabel
的绘图位置。