#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. Scala的类中定义内部类实战

    scala独特之处在于可以在类中定义内部类,起到对外屏蔽作用. 类中默认都是public权限.后面将讲解如何引入接口,scala中的接口与java点区别.特质/接口(Trait)

  2. docker 数据映射方案

    docker run -itd -v /data/:/data1 centos bash // -v 用来指定挂载目录, :前面的/data为本地目录,:后面的/data1 为容器里的目录: dock ...

  3. 算法精解(C语言描述) 第5章 读书笔记

    第5章 5.1 单链表 /* -------------------------------- list.h -------------------------------- */ #ifndef L ...

  4. IOS7 position:fixed 定位问题

    在IOS7下position:fixed定位会出一些bug. 输入框 focus 状态下 fixed会随之改变.参见该页面详细描述(http://www.cnblogs.com/zhangdaipin ...

  5. JavaScript之JS的执行环境和作用域

    一.执行环境是JavaScript中最为重要的一个概念.执行环境定义了变量或函数有权访问的其他数据,决定了他们各自的行为,每个执行环境都有一个与之关联的变量对象(variable object),环境 ...

  6. COM组件简介

    面向对象的思想难以适应这种分布式软件模型,于是组件化程序设计思想得到了迅速的发展. 按照组件化的程序设计的思想,复杂的应用程序被设计成一些小的,功能单一的组件模块,这些组件模块可以运行在同一台机器上, ...

  7. memcached与redis

    Memcached VS Redis 问题:memcached 与 redis 哪个好? 答:这个问题它依赖与工程类别和它的数据. 1.它们都是内存 key/value 类型的高速与高可用的查询表. ...

  8. leetcode 31. Next Permutation(字典序的下一个)

    描述: Implement next permutation, which rearranges numbers into the lexicographically next greater per ...

  9. 重拾javascript动态客户端网页脚本

    笔记一: 一.DOM 作用: ·              DOM(Doument Object Model) 1.document文档 HTML 文件 (标记语言) <html> < ...

  10. 关于 rand() 函数返回值的值域的疑问

    <C语言参考手册>中关于 rand() 函数有如下描述. (1)rand() 函数的原型 int rand(void); (2)连续调用 rand 将返回 0 到 int 类型的最大可表示 ...