阻止 UIAnimation 在 If() 运行时不被调用



尽管该方法已完全运行,但此处的动画永远不会被调用。

其他方法

 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}}

试试这个,让我知道输出是什么:

[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");
                     }
                 }];

最新更新