0

iOS7 に対してテストを開始したとき、いくつかのビューに非常に奇妙なバグがありました。アニメーション化できるプロパティのいずれかがサブビューでその値を変更すると、その親がアニメーション化されている間に、変更もアニメーション化されるようです。私は次の方法を持っています:

- (void)performAnimation{
   [UIView animateWithDuration:0.42
                         delay:0
                       options:UIViewAnimationOptionAllowUserInteraction|UIViewAnimationOptionBeginFromCurrentState
                    animations:^{
                     self.myView.contentInset = contentInset;
                 }
                 completion:NULL];
}

その間、そのビューの layoutsubviews 関数が呼び出され、いくつかのサブビューの位置が更新されます。

-(void)layoutSubviews{
      self.someSubview.frame = CGRectMake(10,20,30,40);
}

iOS5/6 では変更は瞬時に行われましたが、iOS7 ではアニメーション化されるため、サブビューが最初の位置から最終的な位置にゆっくりと移動するのを見ることができます。何かご意見は?

4

1 に答える 1

1

私はついにそれを理解することができました。IOS7では、彼らは新しい機能を導入しました

+ (void)performWithoutAnimation:

コードを layoutSubviews でラップするだけで、不要なアニメーションが消えました。

于 2013-10-18T10:05:41.893 に答える