@interface ViewController ()

 @property (weak, nonatomic) IBOutlet UIButton *btn;

 - (IBAction)reset:(id)sender;
- (IBAction)run:(id)sender;
- (IBAction)rotate:(id)sender;
- (IBAction)scale:(id)sender; @end @implementation ViewController - (void)viewDidLoad {
[super viewDidLoad]; } //定义函数,参数是block类型 无返回值,无参数的block - (void)btnClickWithBlock:(void (^)())block
{
// 0.动画(头部-开始动画)
[UIView beginAnimations:nil context:nil];
// 设置动画的执行时间
[UIView setAnimationDuration:1.0]; //block的调用
block(); // 1.动画(尾部-提交动画-执行动画)
[UIView commitAnimations];
} - (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
} //重置
- (IBAction)reset:(id)sender { [self btnClickWithBlock:^{
_btn.transform = CGAffineTransformIdentity;
}];
} //行走
- (IBAction)run:(id)sender { [self btnClickWithBlock:^{ NSLog(@"self = %@",self); //表示此控制器 // 1.先取出frame
CGPoint tempCenter = _btn.center; // 2.取出按钮的tag标记
NSInteger tag = [sender tag]; switch (tag) {
case : tempCenter.y -= kDelta; break; case : tempCenter.x -= kDelta;
break; case : tempCenter.y += kDelta;
break; case : tempCenter.x += kDelta;
break; default:
break;
} // 3.重新赋值按钮的frame
_btn.center = tempCenter; }];
} //旋转
- (IBAction)rotate:(id)sender { [self btnClickWithBlock:^{
NSInteger tag = [sender tag];
if ( == tag) { // 左
_btn.transform = CGAffineTransformRotate(_btn.transform, M_PI_4 * -);
} else { // 右
_btn.transform = CGAffineTransformRotate(_btn.transform, M_PI_4 * );
}
}]; } //缩放
- (IBAction)scale:(id)sender { [self btnClickWithBlock:^{
CGFloat scale = [sender tag] == ? 1.2 : 0.8;
_btn.transform = CGAffineTransformScale(_btn.transform, scale, scale);
}]; }

Block的示例学习的更多相关文章

  1. MIL 多示例学习 特征选择

    一个主要的跟踪系统包含三个成分:1)外观模型,通过其可以估计目标的似然函数.2)运动模型,预测位置.3)搜索策略,寻找当前帧最有可能为目标的位置.MIL主要的贡献在第一条上. MIL与CT的不同在于后 ...

  2. html5游戏引擎phaser官方示例学习

    首发:个人博客,更新&纠错&回复 phaser官方示例学习进行中,把官方示例调整为简明的目录结构,学习过程中加了点中文注释,代码在这里. 目前把官方的完整游戏示例看了一大半, brea ...

  3. Delphi之通过代码示例学习XML解析、StringReplace的用法(异常控制 good)

    *Delphi之通过代码示例学习XML解析.StringReplace的用法 这个程序可以用于解析任何合法的XML字符串. 首先是看一下程序的运行效果: 以解析这样一个XML的字符串为例: <? ...

  4. 多示例学习 multiple instance learning (MIL)

    多示例学习:包(bags) 和 示例 (instance). 包是由多个示例组成的,举个例子,在图像分类中,一张图片就是一个包,图片分割出的patches就是示例.在多示例学习中,包带有类别标签而示例 ...

  5. iOS block 闭包的学习

    iOS  闭包 学习 理解: 1 .   闭包外界无法访问内部变量 ,它是一个独立的代码块. 2 .   闭包可以作为 一个方法 ,甚至局部变量  全局 变量 3 .   闭包 是一种引用类型   注 ...

  6. 黑马程序员_ Objective-c 之block、protocol学习笔记

    一):block学习总结 block :用来保存一段代码. 1.block 特点:  1> Block封装了一段代码,可以在任何时候执行   2> Block可以作为函数或者函数的返回值, ...

  7. ApiDemos示例学习(1)——ApiDemos示例的导入

    ---恢复内容开始--- 今天准备开始写这个ApiDemos示例的学习日记了,放在网上以监督自己! 首先是导入该示例.如果我们在配置Android开发环境是,利用Android SDK 安装包中的SD ...

  8. OC学习之道:关于Block的初级学习

    [objc] view plaincopy "code" class="OC"> // //  main.m //  Copyright (c) 2015 ...

  9. 通过示例学习JavaScript闭包

    译者按: 在上一篇博客,我们通过实现一个计数器,了解了如何使用闭包(Closure),这篇博客将提供一些代码示例,帮助大家理解闭包. 原文: JavaScript Closures for Dummi ...

随机推荐

  1. js重写页面之后后台如何获取重写后的控件值

    需求描述:专业分流系统中,学生在选择志愿时,我想实现在页面按照点击相应专业的顺序来设置选专业的志愿,如首先点击“工商”,则工商专业为第一志愿,接着点击“营销”,则营销专业为第二志愿,以此类推.从而达到 ...

  2. 你的VCL界面开发不知所措?这款工具绝对超出预料

    DevExpress VCL Controls是 Devexpress公司旗下最老牌的用户界面套包.所包含的控件有:数据录入,图表,数据分析,导航,布局,网格,日程管理,样式,打印和工作流等,让您快速 ...

  3. 1、课程简介-Spring 注解驱动开发

    1.课程简介-Spring 注解驱动开发

  4. Linux文件删除的原理

    Linux文件iNode和block是否删除是通过  i_link  和 i_count 的计数值来判断的.只有i_count  和 I_link 同时为0 的 时候,文件的 iNode和block才 ...

  5. std::array,std::vector,基于范围的for循环

    std::array除了有传统数组支持随机访问.效率高.存储大小固定等特点外,还支持迭代器访问.获取容量.获得原始指针等高级功能.而且它还不会退化成指针T *给开发人员造成困惑. for( 元素名变量 ...

  6. 【题解】[NOIP模拟题]我要的幸福-C++

    题目Description我要的幸福(happiness)幸福/我要的幸福/渐渐清楚/梦想/理想/幻想/狂想/妄想/我只想坚持每一步/该走的方向/就算一路上/偶尔会沮丧/生活是自己/选择的衣裳/幸福/ ...

  7. 016_STM32程序移植之_舵机

    STM32程序移植之舵机PWM测试 接线图如下: STM32引脚 舵机引脚 功能 GND GND 正极电源 具体看舵机的额定电压 PA6 PWM引脚 STM32引脚 CH340引脚 GND GND 3 ...

  8. IIS遇到过的问题

    1. IIS的一个莫名错误Server Application Unavailable http://www.kesion.com/zzcd/asp/aspjq/474.html 新打开这个服务ASP ...

  9. 应用webservice实现公网天气查询

    1. wsdl网址:http://ws.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl 2. URL:http://www.webxml.com.cn/zh ...

  10. STS工具:mybayis连接oracle数据库

    1.pom.xml文件中的依赖 刚添加依赖的时候会报错,原因是jar包下不下来. 2.我的jdk是1.6,所以需要升级jdk版本到1.8 执行mvn -v命令,可以看到maven的版本号 DOS窗口执 ...