0

我遇到了一个奇怪的问题。

返回视图控制器后,我正在尝试更新 UILabel 。

当我返回视图控制器时,我做了一些工作,然后更新了我的视图,但我的 UILabel 都没有更新。

我 100% 确定我正在处理主线程(甚至尝试使用 dispatch_async 强制它并获取主线程),但它仍然无法工作。

我也确信 UILabel 上的 text 属性正在更新,正如在 lldb 中使用 print object 命令所确认的那样,但它没有在屏幕上更新......

这是改变 UILabel 内容的行,非常普通:

[(UILabel *)[self.view viewWithTag:1] setText:_accountInfo[@"name"]];

这是该行上“po”的输出,在其执行后立即执行:

(lldb) po [self.view viewWithTag:1]
<UILabel: 0x165e87f0; frame = (20 12; 143 21); text = 'Testing Again'; clipsToBounds = YES; opaque = NO; autoresize = RM+BM; userInteractionEnabled = NO; tag = 1; layer = <CALayer: 0x165de750>>

顺便说一句,我正在使用 ARC 并为 iOS 7 进行部署。

如果您需要更多代码片段或任何信息,请说。我开始对这个问题感到绝望!

提前致谢。

编辑:当我第一次设置视图时,忘记添加相同的代码。

4

4 回答 4

1

尝试像这样使用...

UILabel *label = (UILabel *)[self.view viewWithTag:1];
label.text = _accountInfo[@"name"];
于 2013-10-10T11:13:22.543 回答
1

这样做怎么办:

[((UILabel *)[self.view viewWithTag:1]) setText:_accountInfo[@"name"]];
于 2013-10-10T11:15:07.447 回答
0

你需要为ios7设置动态字体试试这个...

UIFontDescriptor *userFont = [UIFontDescriptor preferredFontDescriptorWithTextStyle:UIFontTextStyleBody];
float userFontSize = [userFont pointSize];
UIFont *font = [UIFont boldSystemFontOfSize:userFontSize];//[UIFont fontWithName:@"Helvetica" size:userFontSize];
[noteLabel setFont:font];
于 2013-10-10T11:39:12.717 回答
0

执行以下步骤:

1)如果您从代码中添加了标签。检查您是否正在分配内存并初始化标签。

2) 如果您在 Interface Builder 中拖放标签,请检查您是否提供了正确的标签并完成了必要的插座连接。

3)检查标签和其他视图的标签是否不冲突。

4) 使用 cmd+shift+k 清除所有目标。

5) 再次构建

或者

检查使用它来验证它是否是标签:

if ([[self.view viewWithTag:1] isMemberOfClass:[UILabel class]]) {
    //Its a label
    UILabel *label = (UILabel *)[self.view viewWithTag:1];
    label.text=@"Hello World";
}
else {
    //Its not a label
}

也许你应该尝试第二种选择。您将至少对正在发生的事情有所了解。

于 2013-10-10T11:44:24.043 回答