0

我正在尝试通过调用drawRect:或添加出现在前台的视图来在前台显示消息。消息必须在按下按钮后显示。我注意到只有在按下按钮时调用的函数退出时才会显示该消息。

- (IBAction)testBtnPress:(id)sender {
    TestView *testView = [[TestView alloc] initWithFrame:self.view.frame];
    [self.view addSubview:testView];
    // processing to be done while the message is displayed
}

在类drawRect:中调用TestView。待处理完成后显示带有消息的矩形,这对我的应用程序不方便。有没有办法在处理运行时显示消息(消息将是“处理中...请稍候”)。谢谢。

4

2 回答 2

1

处理必须在后台线程中完成,或者在运行循环的一次迭代中执行,以便为您的 UI 更改提供处理时间。

您可以使用以下方式在 runloop 的下一次迭代中进行处理:

TestView *testView = ... ;

[[NSOperationQueue mainQueue] addOperationWithBlock:^{
    // processing to be done while the message is displayed
}];
于 2013-04-22T12:38:07.227 回答
0

这应该有效:

dispatch_async(dispatch_get_main_queue(), ^{
    TestView *testView = [[TestView alloc] initWithFrame:self.view.frame];
    [self.view addSubview:testView];
});
于 2013-04-22T12:27:44.117 回答