我有我的主线程,我称之为加载数据的方法(需要一段时间).我用performSelectorInBackground调用此方法并传递委托.数据加载方法定期回调以更新进度,它调用最初在后台启动它的同一控制器类中的方法(委托).这个方法看起来像:
-(void)loadingProgress:(float)progress{
NSLog(@"Progress %f", progress);
myProgressView.progress = progress;
}
Run Code Online (Sandbox Code Playgroud)
所以我知道该方法正在被调用和运行,因为我得到了日益增加的进度值的日志读数,但进度指示器没有移动.我发现的所有内容都声明确保主线程可以自由更新视图,但NSLog运行的事实并不意味着它是免费的吗?这是怎么回事?
我有一系列从0到N的UIButtons,背景图像是一种颜色.我想从0到N采用一系列数字,然后运行它并按顺序闪烁每个数字的相应按钮.我曾想过将背景改为白色并使用睡眠,但我无法让它工作.按钮必须按顺序闪烁,闪光灯之间的时间间隔相等.伪代码是:
for(i in sequence){
[[buttons objectAtIndex:i] flash];
//The flash must complete before the next button flashes.
}
Run Code Online (Sandbox Code Playgroud)
无论如何模拟与按钮按下相同的动画,因为那将是完美的?基本上我正在做这些闪光以向用户显示按下按钮的顺序,是否有更优雅的方式来做到这一点?我应该使用一些自定义视图而不是UIButton(我需要它可以点击,但我可以编程而不是使用按钮)?