8

Appleのドキュメントは次のように説明UIViewAnimationOptionLayoutSubviewsしています。

コミット時にサブビューをレイアウトして、親と一緒にアニメーション化されるようにします。

これが私が興味を持っているコードのサンプルです。私はのをアニメーション化したいと思い-layoutSubviewsますdetailView; ただし、のサブビューをレイアウトしていないように見えるため、detailView実際にどのような効果があるのか​​わかりません。

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

    [UIView animateWithDuration:0.5
                          delay:0.0
                        options:UIViewAnimationOptionLayoutSubviews
                     animations:^{
                         animation();
                     }
                     completion:nil];
4

1 に答える 1

0

最初のアニメーションの現在の状態から 2 番目のアニメーションを発生させたいので (終了しているかどうかに関係なく)、2 番目のアニメーションを設定するときに 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];
于 2015-03-25T05:39:11.210 に答える