美文网首页iOS图像动画iOS点点滴滴
简单的渐隐渐现动画效果

简单的渐隐渐现动画效果

作者: Lonely__M | 来源:发表于2015-05-29 11:25 被阅读3881次

    随意写的小Demo,适合慢慢显示弹出框的效果以及切换两个界面,代码很简单,可是项目中很实用,至少对我帮助很大,特此记录,效果如下:

    demo.gif

    代码如下:

    #import "AnimationViewController.h"
    
    @interface AnimationViewController ()
    {
        UIView *view1;
        UIButton *btn;
        
        UIView *view2;
        UIButton *btn2;
    }
    
    @end
    
    @implementation AnimationViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        // Do any additional setup after loading the view.
        self.view.backgroundColor = [UIColor whiteColor];
        self.title = @"动画效果";
        
        //1.动画渐隐渐现效果
        
        view1 = [[UIView alloc] initWithFrame:CGRectMake(30,74 , self.view.frame.size.width-60, 80)];
        view1.backgroundColor = [UIColor infoBlueColor];
        view1.alpha = 1;
        [self.view addSubview:view1];
        
        btn = [UIButton buttonWithType:UIButtonTypeCustom];
        btn.tag = 1;
        [btn setTitle:@"渐隐/渐现" forState:UIControlStateNormal];
        [btn setTitle:@"渐隐/渐现" forState:UIControlStateSelected];
        [btn setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];
        [btn setTitleColor:[UIColor blueColor] forState:UIControlStateSelected];
        [btn addTarget:self action:@selector(btnAction:) forControlEvents:UIControlEventTouchUpInside];
        btn.frame = CGRectMake(70, CGRectGetMaxY(view1.frame)+20, self.view.frame.size.width-140, 30);
        [self.view addSubview:btn];
        
        
        //2.两个view切换
        view2 = [[UIView alloc] initWithFrame:CGRectMake(30,74 , self.view.frame.size.width-60, 80)];
        view2.backgroundColor = [UIColor redColor];
        view2.alpha = 0;
        [self.view addSubview:view2];
        
        btn2 = [UIButton buttonWithType:UIButtonTypeCustom];
        btn2.tag = 2;
        [btn2 setTitle:@"切换" forState:UIControlStateNormal];
        [btn2 setTitle:@"切换" forState:UIControlStateSelected];
        [btn2 setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];
        [btn2 setTitleColor:[UIColor blueColor] forState:UIControlStateSelected];
        [btn2 addTarget:self action:@selector(btnAction:) forControlEvents:UIControlEventTouchUpInside];
        btn2.frame = CGRectMake(70, CGRectGetMaxY(btn.frame)+20, self.view.frame.size.width-140, 30);
        [self.view addSubview:btn2];
    }
    
    
    - (void)btnAction:(UIButton *)sender
    {
        if (sender.tag == 1)
        {
            if (!btn.selected)
            {
                [UIView animateWithDuration:1 animations:^{
                    view1.alpha = 0;
                } completion:^(BOOL finished) {
                    [sender setSelected:YES];
                }];
            }
            else
            {
                [UIView animateWithDuration:1 animations:^{
                    view1.alpha = 1;
                } completion:^(BOOL finished) {
                    [sender setSelected:NO];
                }];
            }
        }
        else
        {
            if (!btn2.selected)
            {
                [UIView animateWithDuration:0.5 animations:^{
                    view2.alpha = 1;
                } completion:^(BOOL finished) {
                    [UIView transitionFromView:view1 toView:view2 duration:1 options:UIViewAnimationOptionTransitionCurlUp completion:^(BOOL finished) {
                        [sender setSelected:YES];
                    }];
                }];
                
            }
            else
            {
                [UIView transitionFromView:view2 toView:view1 duration:1 options:UIViewAnimationOptionTransitionCrossDissolve completion:^(BOOL finished) {
                    [sender setSelected:NO];
                }];
            }
        }
        
    }
    
    

    Tip

    view的渐隐渐现就是设置view的alpha,设置动画时长即可。

    相关文章

      网友评论

        本文标题:简单的渐隐渐现动画效果

        本文链接:https://www.haomeiwen.com/subject/xdgrqttx.html