#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=;
CGFloat imgH=;
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=;
CGFloat imgH=;
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==) {
//调用动画
[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=; }];
}else{
[self alpahaBtnTypeClick];
}
}
@end

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

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

xcode 不值钱的动画UIButton的更多相关文章

  1. xcode 不值钱的动画UIImageView

    了解 animateWithDuration方法 制作动画变得不值钱 代码创建一个UIImageView 后加入self.view 容器中 调用点击屏幕touchesBegan 方法执行动画 #imp ...

  2. xcode UIView常用方法属性动画

    常见属性: @property(nonatomic,readonly) UIView *superview; 获得自己的父控件对象 @property(nonatomic,readonly,copy) ...

  3. Quartz2D复习(四) --- 图层CALayer和动画CAAnimation

    1.CALayer 1).在ios中,能看得见摸得着的东西基本上都是UIView, 比如按钮.文本标签.文本输入框.图标等,这些都是UIView 2).UIView之所以能显示在屏幕上,完全是因为它内 ...

  4. Xcode + Swift 制作动态原型

    转载: Xcode + Swift 制作动态原型 为什么是 Xcode 和 Swift 我们尝试过的动态原型设计工具,Origami, Form, Hype, FramerJS,Pixate 等,但都 ...

  5. SpriteBuilder中使用Node类型的ccb动画节点删除时崩溃的问题

    因为节点需要呈现动画效果,虽然只有两个不同帧. 在SpriteBuilder中新建Bullet.ccb文件,类型为node. 添加如上2张图片,并制作动画效果帧. 在游戏中子弹遇到障碍物会被删除,时机 ...

  6. iOS - 开源框架、项目和学习资料汇总(动画篇)

    动画 1. Core Animation笔记,基本的使用方法 – Core Animation笔记,基本的使用方法:1.基本动画,2.多步动画,3.沿路径的动画,4.时间函数,5.动画组.2. awe ...

  7. ios项目里扒出来的json文件

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Menlo; color: #000000 } p.p2 { margin: 0.0px 0. ...

  8. Github上关于iOS的各种开源项目集合(强烈建议大家收藏,查看,总有一款你需要)

    下拉刷新 EGOTableViewPullRefresh - 最早的下拉刷新控件. SVPullToRefresh - 下拉刷新控件. MJRefresh - 仅需一行代码就可以为UITableVie ...

  9. iOS及Mac开源项目和学习资料【超级全面】

    UI 下拉刷新 EGOTableViewPullRefresh – 最早的下拉刷新控件. SVPullToRefresh – 下拉刷新控件. MJRefresh – 仅需一行代码就可以为UITable ...

随机推荐

  1. GMTED2010 高程数据下载

    http://topotools.cr.usgs.gov/GMTED_viewer/viewer.htm

  2. Delphi判断一个文件是不是JPG图片

    判断头几个字节: function IsJpegFile(FileName: string): Boolean; const RightBuf : ..] of Byte = ($FF,$D8,$FF ...

  3. centos 6.7 perl 版本 This is perl 5, version 22 安装DBI DBD

    <pre name="code" class="cpp">centos 6.7 perl 版本 This is perl 5, version 22 ...

  4. POJ 2799 IP Networks

    network address是前(32-n)随意 后n位全零 network mask是前(32-n)全一 后n位全零 本题主要利用位移操作,1ULL表示无符号长整型的常数1,这样写可防止不必要的溢 ...

  5. python手记(9)

    本博客所有内容是原创,未经书面许可,严禁任何形式的转 http://blog.csdn.net/u010255642 tab #!/usr/bin/env python # example noteb ...

  6. switch case default 的使用

    switch_case从页面输入五个同学的成绩,求出平均成绩,如果大于等于90为优秀,小于90大于等于80为良好,小于80大于等于70为一般,小于70大于等于60为较差,小于60为很差 SWITCH语 ...

  7. Spring MVC详细示例实战教程【转】

    一.SpringMVC基础入门,创建一个HelloWorld程序 1.首先,导入SpringMVC需要的jar包. 2.添加Web.xml配置文件中关于SpringMVC的配置 1 2 3 4 5 6 ...

  8. vs2012C#编程环境设置智能提示

    vs2012 智能提示和  显示行号的问题 路径为    菜单里 工具-->选项-->文本编辑器-->C#  如图所示 自动列出成员就是 vs里面的智能提示 行号就会显示所写代码的行 ...

  9. BZOJ 4000: [TJOI2015]棋盘( 状压dp + 矩阵快速幂 )

    状压dp, 然后转移都是一样的, 矩阵乘法+快速幂就行啦. O(logN*2^(3m)) ------------------------------------------------------- ...

  10. C学习之指针强化

    char *p = (char *)malloc(100); malloc是用于分配内存的函数,它的参数为int型,表示分配多少个字节长度,其返回类型为void*,在这里用char*就是强制转化,指定 ...