• xcode 不值钱的动画UIButton


    #import "ViewController.h"
    
    @interface ViewController ()
    /**
     按钮
     */
    @property(nonatomic,weak)UIButton * btn;
    /**
     遮盖按钮
     */
    @property(nonatomic,weak)UIButton * alpahaBtn;
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        //设置背景图片以便区分
        UIImageView * imgType=[[UIImageView alloc]initWithFrame:self.view.frame];
        imgType.image=[UIImage imageNamed:@"timg1"];
        [self.view addSubview:imgType];
       
        //创建阴影按钮
        UIButton * alpahaBtnType=[[UIButton alloc]init];
        //设置全屏
        alpahaBtnType.frame=self.view.frame;
        //设置背景颜色
        alpahaBtnType.backgroundColor=[UIColor lightGrayColor];
        //设置透明度
        alpahaBtnType.alpha=0.0;
        self.alpahaBtn=alpahaBtnType;
        [self.view addSubview:alpahaBtnType];
        [self.view bringSubviewToFront:alpahaBtnType];
        
        
        CGFloat cgW=self.view.bounds.size.width;
        CGFloat imgW=174;
        CGFloat imgH=272;
        CGFloat cgY=(cgW-imgW)*0.5;
        //创建按钮
        UIButton * btnType=[[UIButton alloc]init];
        //设置图片
        [btnType setImage:[UIImage imageNamed:@"timg"] forState:UIControlStateNormal];
        //设置位置
        btnType.frame=CGRectMake(cgY, cgY, imgW, imgH);
        self.btn=btnType;
        [self.view addSubview:btnType];
        
        /**
         设置点击事件
         */
        [alpahaBtnType addTarget:self action:@selector(alpahaBtnTypeClick) forControlEvents:UIControlEventTouchUpInside];
        [btnType addTarget:self action:@selector(btnClick) forControlEvents:UIControlEventTouchUpInside];
        
    }
    /**
     消失阴影
     还原图片
     */
    -(void)alpahaBtnTypeClick{
       //调用动画
        [UIView animateWithDuration:2.0 animations:^{
            CGFloat cgW=self.view.bounds.size.width;
            CGFloat imgW=174;
            CGFloat imgH=272;
            CGFloat cgY=(cgW-imgW)*0.5;
          self.btn.frame=CGRectMake(cgY, cgY, imgW, imgH);
            self.alpahaBtn.alpha=0.0;
        }];
    }
    /**
     点击发大图片
     点击还原图片
     */
    -(void)btnClick{
        if (self.alpahaBtn.alpha==0) {
            //调用动画
            [UIView animateWithDuration:1.5 animations:^{
    //            NSLog(@"%@",NSStringFromCGRect(self.btn.frame));
                CGFloat cgX=self.btn.frame.origin.x;
                CGFloat cgY=self.btn.frame.origin.y;
                CGFloat cgW=self.btn.frame.size.width;
                CGFloat cgH=self.btn.frame.size.height;
                self.btn.frame=CGRectMake(cgX-(cgX*0.5), cgY-(cgY*0.5), cgW+(cgW*0.5), cgH+(cgH*0.5));
                self.alpahaBtn.alpha=1;
                
            }];
        }else{
            [self alpahaBtnTypeClick];
        }
    }
    @end

    功能很简单就是点击按钮加大图片 在点击图片还原回去

    判断条件主要判断阴影是否为0 判断阴影按钮的透明度

  • 相关阅读:
    JSP/Servlet开发——第二章 JSP数据交互(二)
    JSP/Servlet开发——第一章 动态网页基础
    Java OOP——第三章 多态
    Java OOP——第二章 继承
    Java OOP——第一章 对象和封装
    Java OOP——第四章 异常
    Linux 系统启动过程
    动画链接
    js判断浏览器类型
    localStorage封装
  • 原文地址:https://www.cnblogs.com/fleas/p/5561884.html
Copyright © 2020-2023  润新知