iPhone 标签未更新

标签 iphone label

我想从单独的线程更新 iPhone 表单上的标签。线程正在运行,但标签未更新。

这是我的代码

-(void)launchThread:(id)param;
@property (weak, nonatomic) IBOutlet UILabel *timeLabel;

...

-(void) launchThread:(id)param{
UILabel *control = (UILabel*)param;
NSMutableString *str;
for (int i=0; i<1000; i++) {
    str = [NSMutableString stringWithFormat:@"%d",i];
    control.text=str;
    NSLog(@"%@",str);
    sleep(1);
}}

...

- (void)viewDidLoad {
    [super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
    [NSThread detachNewThreadSelector:@selector(launchThread:) toTarget:self withObject:timeLabel];
}

我猜标签的文本已更新,但表单上未刷新。如何刷新?

我尝试寻找类似的帖子,但它们对我不起作用。抱歉,如果我重复了这个问题。

最佳答案

@jackslash是正确的,只能在主线程(UI线程)上更新界面。我建议使用 performSelectorOnMainThread 来更新您的 UILabel。我认为语法是这样的:

[self.label performSelectorOnMainThread : @ selector(setText : ) withObject:str waitUntilDone:YES];

不过还不太确定。进行一些谷歌搜索,您应该能够找到一个可用的示例。

关于iPhone 标签未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9088766/

相关文章:

iphone - C++ 类对象作为 obj-c 类中的实例变量

java - LibGDX - 绘制弯曲标签

iPhone 表格单元格标签未对齐

html - 如何将 html 文本设置为标签 Swift

ios - SceneKit AVPlayer 仅播放音频

iphone - 使用 iPhone 的蜡笔效果

iphone - UITextField 中清除按钮的最佳实践

iphone - 从 NSMutableArray 中的元素中删除字符?

html - 将标签放在文本字段的顶部

XAML:如何将百分比符号附加到绑定(bind)标签值?