我有一个附加到IBAction的按钮,它应该在循环之前隐藏,但它永远不会隐藏。
- (IBAction)method:(id)sender
{
button.hidden = YES;
while(...) //button should be hidden while control is in loop but this never happens.
{
}
}
不确定为什么这不起作用我们将不胜感激。
答案 0 :(得分:2)
您已设置其hidden
属性,但视图当时不会自行绘制。它必须经过运行循环的迭代才能重绘其内容。如果您的方法中有一个长时间运行的同步任务,则控制永远不会返回到运行循环,直到您的方法退出,因此您没有看到设置hidden
属性的效果。
考虑异步执行任务。像
这样的东西button.hidden = YES;
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
while (...) {
// do your work here
}
});