基于块的动画不起作用:动画和完成块立即执行(无持续时间)

Block-Based Animation does not Work: Animations and Completion Blocks are Executed Immediately (Without Duration)

我尝试为 UIView 的某些功能设置动画,无论如何,我将所有内容简化为 "ViewController.m" 中的这些代码行:

- (void)viewDidLoad {
    ...
    [UIView animateWithDuration: 5.0 animations:^{
            NSLog(@"animations");}
    completion:^(BOOL finished){NSLog(@"completion");}];
    }

尽管动画应该持续 5 秒,但加载后两个块都会立即输出。

您不能在 viewDidLoad 中使用块动画,因为您要设置动画的 UIView 目前没有超级视图。将代码移动到 viewDidAppear 方法。