ios – 如何使用翻转动画添加子视图?

前端之家收集整理的这篇文章主要介绍了ios – 如何使用翻转动画添加子视图?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如果您创建一个全新的单一视图应用程序并将此代码放在一个按钮后面:
UIView *blah = [[UIView alloc] initWithFrame:CGRectMake(0,100,100)];
blah.backgroundColor = [UIColor grayColor];
[UIView transitionWithView:blah duration:1
                   options:UIViewAnimationOptionTransitionFlipFromRight
                animations:^{
                    [self.view addSubview:blah];
                }
                completion:^(BOOL finished){

                }];

子视图立即添加,没有动画.如果你先添加子视图然后尝试动画它…你会遇到同样的问题.

UIView *blah = [[UIView alloc] initWithFrame:CGRectMake(0,100)];
    [self.view addSubview:blah];
    [UIView transitionWithView:blah duration:1
                       options:UIViewAnimationOptionTransitionFlipFromRight
                    animations:^{
                        blah.backgroundColor = [UIColor grayColor];
                    }
                    completion:^(BOOL finished){

                    }];

在地球上如何为子视图设置动画,或者在添加后立即动画?

解决方法

您通常需要将限制动画的容器放在适当的位置:
- (void)viewDidLoad
{
    [super viewDidLoad];

    CGRect frame = CGRectMake(0,100);

    _container = [[UIView alloc] initWithFrame:frame];
    _container.backgroundColor = [UIColor lightGrayColor];
    [self.view addSubview:_container];
}

- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];

    UIView *subview = [[UIView alloc] initWithFrame:_container.bounds];
    subview.backgroundColor = [UIColor darkGrayColor];

    [UIView transitionWithView:_container
                      duration:1.0
                       options:UIViewAnimationOptionTransitionFlipFromRight
                    animations:^{
                        [_container addSubview:subview];
                    }
                    completion:NULL];
}
原文链接:https://www.f2er.com/iOS/330301.html

猜你在找的iOS相关文章