//

//  ViewController.m

//  18-transform的使用

#import "ViewController.h"

@interface ViewController ()

@property(nonatomic,assign)CGFloat ty;

- (IBAction)up:(id)sender;

- (IBAction)big;

- (IBAction)rotate;

- (IBAction)reset;

@end

@implementation ViewController

- (void)viewDidLoad {

[super viewDidLoad];

// Do any additional setup after loading the view, typically from a nib.

}

- (void)didReceiveMemoryWarning {

[super didReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}

/**

向上向下向左向右

@param sender <#sender description#>

*/

- (IBAction)up:(id)sender {

//    NSLog(@"up");

//通过父控件拿到按钮

//可以通过父类拿到子类

UIButton *headBtn = (UIButton *)[self.view viewWithTag:10];

//2 通过fransform让头像向上走

//tx 水平方向移动的范围

//ty 竖直方向移动的范围

/**

CGAffineTransformMakeTranslation

使用这个方法进行设置,每次变化都是以原始值进行

变化的

@param 0 <#0 description#>

@param -10 <#-10 description#>

@return <#return value description#>

*/

//方法1: 开辟成员变量耗性能

//    self.ty-= 10;

//    headBtn.transform = CGAffineTransformMakeTranslation(0, self.ty);

/**

方法2:

CGAffineTransformTranslate

使用这个方法每次都是以CGAffineTransform 值进行变化的

@param t#> <#t#> description#>

@param tx#> <#tx#> description#>

@param ty#> <#ty#> description#>

@return <#return value description#>

*/

headBtn.transform = CGAffineTransformTranslate(headBtn.transform, 0, -10);

}

//放大 缩小

- (IBAction)big {

[UIView beginAnimations:nil context:nil];

[UIView setAnimationDuration:1.5];

UIButton *headBtn = (UIButton *)[self.view viewWithTag:10];

headBtn.transform = CGAffineTransformScale(headBtn.transform, 1.5, 1.5);

[UIView commitAnimations];

}

/**

旋转

*/

- (IBAction)rotate {

UIButton *headBtn = (UIButton *)[self.view viewWithTag:10];

headBtn.transform = CGAffineTransformRotate(headBtn.transform, M_PI_4);

}

/**

复位

*/

- (IBAction)reset {

UIButton *headBtn = (UIButton *)[self.view viewWithTag:10];

headBtn.transform = CGAffineTransformIdentity;

}

@end

iOS开发transform的使用的更多相关文章

  1. Hello_IOS ios开发transform属性

    #import "ViewController.h" @interface ViewController () @property (weak, nonatomic) IBOutl ...

  2. ios开发transform属性

    #import "ViewController.h" @interface ViewController () @property (weak, nonatomic) IBOutl ...

  3. iOS开发 -------- transform属性(形变)

      一 transform属性 在OC中,通过transform属性可以修改对象的平移,比例和旋转角度 常用的创建transform结构体的方法分两大类 (1) 创建"基于控件初始位置&qu ...

  4. iOS开发基础篇-transform属性

    一. transform 属性 在OC中,通过 transform 属性可以修改对象的平移.缩放比例和旋转角度. 1)创建“基于控件初始位置”的形变  CGAffineTransformMakeRot ...

  5. iOS开发系列--打造自己的“美图秀秀”

    --绘图与滤镜全面解析 概述 在iOS中可以很容易的开发出绚丽的界面效果,一方面得益于成功系统的设计,另一方面得益于它强大的开发框架.今天我们将围绕iOS中两大图形.图像绘图框架进行介绍:Quartz ...

  6. iOS开发系列--Swift进阶

    概述 上一篇文章<iOS开发系列--Swift语言>中对Swift的语法特点以及它和C.ObjC等其他语言的用法区别进行了介绍.当然,这只是Swift的入门基础,但是仅仅了解这些对于使用S ...

  7. iOS开发——创建你自己的Framework

    如果你想将你开发的控件与别人分享,一种方法是直接提供源代码文件.然而,这种方法并不是很优雅.它会暴露所有的实现细节,而这些实现你可能并不想开源出来.此外,开发者也可能并不想看到你的所有代码,因为他们可 ...

  8. iOS开发系列--无限循环的图片浏览器

    --UIKit之UIScrollView 概述 UIKit框架中有大量的控件供开发者使用,在iOS开发中不仅可以直接使用这些控件还可以在这些控件的基础上进行扩展打造自己的控件.在这个系列中如果每个控件 ...

  9. ios开发中的小技巧

    在这里总结一些iOS开发中的小技巧,能大大方便我们的开发,持续更新. UITableView的Group样式下顶部空白处理 //分组列表头部空白处理 UIView *view = [[UIViewal ...

随机推荐

  1. 自己动手做——简易下载工具 SimpleDownloader

    一.说明 二.开发 三.源代码 源代码:https://github.com/FrankFan/SimpleDownloader 可执行文件下载地址

  2. 【onethink搬家】win环境移植linux环境,注意事项

    onethink 搬家注意事项: 修改目录/文件归属和权限,Runtime目录要有可写权限. 若数据库有变动,则需要更改数据库连接参数.在Application/Common/Conf/config. ...

  3. ios中GDataXML解析XML文档

    参考文章 http://blog.csdn.net/ryantang03/article/details/7868246 适合解析一个节点多个属性要用GDataXml 格式如下 <?xml ve ...

  4. 架构-到底什么时候该使用MQ【转】

    点击:<查看原文> 一.缘起 一切脱离业务的架构设计与新技术引入都是耍流氓. 引入一个技术之前,首先应该解答的问题是,这个技术解决什么问题. 就像微服务分层架构之前,应该首先回答,为什么要 ...

  5. ubuntu 安装 oracle-xe-universal

    安装oracle-xe-universal第一个我们要考虑的就是交换分区是否足够大, 如果你直接安装,可能会出现下面的英文提示: This system does not meet the minim ...

  6. saltstack 基础入门文档

    saltstack 和 Puppet Chef 一样可以让你同时在多台服务器上执行命令也包括安装和配置软件.Salt 有两个主要的功能:配置管理和远程执行.这里讲述了saltstack的基本使用方法. ...

  7. 使用 scp命令免登陆

    多台服务器之间互相拷贝文件一般常用scp命令但是让人困扰的是还要输入密码, 能不能不输入密码直接拷贝? 所幸方法是有的,ssh服务是支持免登陆的,不过需要密钥文件 方法如下: [root@WebSer ...

  8. spring-data-redis读写分离

    在对Redis进行性能优化时,一直想对Redis进行读写分离.但由于项目底层采用spring-data-redis对redis进行操作,参考spring官网却发现spring-data-redis目前 ...

  9. Tensorflow运行程序报错 FailedPreconditionError

    1 FailedPreconditionError错误现象 在运行tensorflow时出现报错,报错语句如下: FailedPreconditionError (see above for trac ...

  10. 关于varchar(max), nvarchar(max)和varbinary(max)

    在MS SQL2005及以上的版本中,加入大值数据类型(varchar(max).nvarchar(max).varbinary(max) ).大值数据类型最多可以存储2^30-1个字节的数据.这几个 ...