循环前按钮不会隐藏

时间:2013-03-18 07:31:20

标签: ios objective-c cocoa-touch

我有一个附加到IBAction的按钮,它应该在循环之前隐藏,但它永远不会隐藏。

- (IBAction)method:(id)sender
{
    button.hidden = YES;
    while(...) //button should be hidden while control is in loop but this never happens.
    {
    }
}

不确定为什么这不起作用我们将不胜感激。

1 个答案:

答案 0 :(得分:2)

您已设置其hidden属性,但视图当时不会自行绘制。它必须经过运行循环的迭代才能重绘其内容。如果您的方法中有一个长时间运行的同步任务,则控制永远不会返回到运行循环,直到您的方法退出,因此您没有看到设置hidden属性的效果。

考虑异步执行任务。像

这样的东西
button.hidden = YES;
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    while (...) {
        // do your work here
    }
});