0

ここでのアニメーションは、メソッドが完全に実行されたにもかかわらず呼び出されることはありません。

その他の方法

 if (show) {
    [self dropTheHeader];
}

   -(void)dropTheHeader{


    NSLog(@"Show this damn method");

    [UIView animateWithDuration:2
                          delay:0
                        options:UIViewAnimationOptionCurveEaseOut
                     animations:^{
                         self.searchHeader.frame = CGRectOffset(self.searchHeader.frame, 0, -44);
                     }completion:^(BOOL finished){

                         self.searchHeader.hidden = YES;

                     }];
}

とても奇妙です。ログが呼び出され、すべてがアニメーションなしで呼び出されます。self.searchHeader が Nil であるかどうか、サイコロがないかどうかを確認しました。誰にも考えはありますか?

編集

2013-09-26 11:34:47.362 Pict[3077:907] searchHeader hidden: no
2013-09-26 11:34:47.364 Pict[3077:907] the current frame is: {{0, 0}, {320, 88}}
2013-09-26 11:34:47.366 Pict[3077:907] the new frame is: {{0, -44}, {320, 88}}
2013-09-26 11:34:49.411 Pict[3077:907] the completed frame is: {{0, 0}, {320, 88}}
4

1 に答える 1

1

これを試して、出力が何であるか教えてください:

[UIView animateWithDuration:2
                      delay:0
                    options:UIViewAnimationOptionCurveEaseOut
                 animations:^{
                     NSLog(@"searchHeader hidden: %@", self.searchHeader.hidden ? "yes" : "no");
                     NSLog(@"the current frame is: %@", NSStringFromCGRect(self.searchHeader.frame));
                     self.searchHeader.frame = CGRectOffset(self.searchHeader.frame, 0, -44);
                     NSLog(@"the new frame is: %@", NSStringFromCGRect(self.searchHeader.frame));
                 }completion:^(BOOL finished){

                     if (finished) {
                         NSLog(@"the completed frame is: %@", NSStringFromCGRect(self.searchHeader.frame));
                         self.searchHeader.hidden = YES;
                     } else {
                         NSLog(@"completion handler called before finishing animation");
                     }

                 }];
于 2013-09-26T18:19:14.687 に答える