UIlabel.text被赋值之后不能立即显示,求教怎么回事

comma1989 2019-01-11 09:06:42
新手刚学IOS开发,想做一个简单的语音计算器,希望得到的效果是按等号之后先显示计算结果,然后再播放声音,但是总是反过来,好像必须这段代码全部执行完毕之后,文本才能显示出来,这是怎么回事啊
//将结果赋值给lbl_result控件,并显示出来
self.lbl_result.text = [self removeZero:equation_ar[0]];
[self.btn_del_ot setTitle:@"AC" forState:normal];
//加载声音文件播放计算结果
NSString * result_sound = self.lbl_result.text;
for (int i = 0; i < result_sound.length; i++)
{
//加载当前索引号的字符
unichar ch = [result_sound characterAtIndex:i];
//根据字符ch的ASCII码,选择加载的音频文件
switch (ch) {
case 48:
case 49:
case 50:
case 51:
case 52:
case 53:
case 54:
case 55:
case 56:
case 57:
[self playSoundWithFileName:[NSString stringWithFormat:@"caculator_soundEffect_%d.wav",(ch-48)]];
[NSThread sleepForTimeInterval:0.5];
break;
}

...全文
400 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
江边鸟_ 2019-01-12
  • 打赏
  • 举报
回复
你尝试下把 for 循环放在后台线程去做

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
//for循环放在这里
});

29,031

社区成员

发帖
与我相关
我的任务
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
  • iOS
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧