1

执行附加代码时,我遇到了取消隐藏 UIView 的问题。代码如下:

- (void)someMethod {
    self.oldView.hidden = YES;
    self.newView.hidden = NO;

    NSString *parameter = self.myLabel.text;
    [AnotherObject doSomethingWith:parameter];
}

doSomething:方法是一种真正的计算密集型方法,需要几秒钟。这种行为现在有点出乎意料:

  1. oldView 被隐藏
  2. 需要几秒钟(似乎doSomething:已执行
  3. 显示新视图

有什么问题,我怎样才能在执行代码之前显示 newView doSomething:

4

2 回答 2

0

使用此代码:

- (void)someMethod {
    self.oldView.hidden = YES;
    self.newView.hidden = NO;

    NSString *parameter = self.myLabel.text;
    [self performSelector:@selector(doSomethingWith:) withObject:parameter afterDelay:0.1];
}

这将在 0.1 秒延迟后调用您的方法,因此此时您的 newView 将显示。

于 2013-02-04T11:56:19.167 回答
0

使用此代码:

- (void)someMethod {
    self.oldView.hidden = YES;
    self.newView.hidden = NO;

    NSString *parameter = self.myLabel.text;
   [NSThread detachNewThreadSelector:@selector(doSomethingWith:) toTarget:self   withObject:parameter];

}

并恢复我..

于 2013-02-04T12:51:01.887 回答