UIViewAnimationOptionLayoutSubviews如何工作的一个例子?

jon*_*ley 8 core-animation ios

Apple的文档描述UIViewAnimationOptionLayoutSubviews为:

在提交时布置子视图,以便它们与其父级一起动画.

这里是我感兴趣的代码示例我希望动画-layoutSubviewsdetailView; 但是,它似乎没有布局子视图detailView,所以我不确定它实际上有什么影响.

    void (^animation) () = ^
    {
        [self.detailView setNeedsLayout];
        [self.detailView layoutIfNeeded];
    };

    [UIView animateWithDuration:0.5
                          delay:0.0
                        options:UIViewAnimationOptionLayoutSubviews
                     animations:^{
                         animation();
                     }
                     completion:nil];
Run Code Online (Sandbox Code Playgroud)

小智 0

由于您希望第二个动画从第一个动画的当前状态开始(无论是否完成),我建议在设置第二个动画时使用 UIViewAnimationOptionLayoutSubviews 选项。

[UIView animateWithDuration:0.2
                      delay:0.0
                    options:UIViewAnimationOptionLayoutSubviews
                 animations:^{
                     CGAffineTransform settingsTransform = CGAffineTransformMakeTranslation(self.animatedView.frame.size.width, 0);
                        self.animatedView.transform = settingsTransform;
                 } 
completion:nil];
Run Code Online (Sandbox Code Playgroud)