2

次のアニメーション ブロックがあります。

[UIView animateWithDuration:3.0 animations:^{
            NSLog(@"INDEX %d",  index);

            [self.visibleViewControllers_ enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {                                 
                UIViewController *viewController = (UIViewController *)obj;
                if (viewController.view.tag != index){
                    if (viewController.view.tag < index){
                        NSLog(@"LOWER VIEW WITH TAG %d", viewController.view.tag);
                        [viewController.view setFrameY:self.contentOffset.y - viewController.view.frameHeight];
                    } else if (viewController.view.tag > index){
                        NSLog(@"UPPER VIEW WITH TAG %d", viewController.view.tag);
                        [viewController.view setFrameY:600];
                    } else {
                        [viewController.view setFrame:CGRectMake(0, self.contentOffset.y, selectedView.frameWidth, 460)];
                    }
                }
            }];
            //[selectedView setFrame:CGRectMake(0, self.contentOffset.y, selectedView.frameWidth, 460)];
        }completion:^(BOOL finished){
            [self.visibleViewControllers_ enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {                                 
                UIViewController *viewController = (UIViewController *)obj;
                NSLog(@"VIEW CONTROLLER Y IS %f AT INDEX %d", viewController.view.frameY, viewController.view.tag);
            }];

        }];

基本的には、アニメーション化したいビューのビューコントローラーの辞書ですが、奇妙なのは、アニメーションを1つしか実行しないことです。すべてではない。どうしてこれなの?アニメーション ブロック内で列挙を行うことは可能ですか?

4

2 に答える 2

0

ビューを列挙し、列挙でそれらをアニメーション化します

[self.visibleViewControllers_ enumerateKeysAndObjectsUsingBlock:^
    [UIView animation.....

1 つのアニメーションを実行し、このアニメーションのすべてのビューを列挙します。回すだけ

于 2012-06-06T14:53:26.687 に答える