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:問題は何ですか?また、コードが実行される前に newView を表示するにはどうすればよいですか?

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 に答える