//

//  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. navigationItem.rightBarButtonItem 设置背景图片,颜色更改解决的方法

    self.navigationItem.rightBarButtonItem=[[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@& ...

  2. jquery版本号升级不兼容的问题:$(&quot;input&quot;).attr(&quot;value&quot;)功能发生改变

    之前项目中使用的是jquery-1.6.3.js,在这个版本号中,假设我们想获取输入框的值,能够使用$("input").attr("value")或者是$(& ...

  3. public static List SmaDataManager.getThreads(Context context)

    public static List<TxrjThreads> getThreads(Context context) 解析获取Threads列表之要点: 1. 得到带有fail信息的th ...

  4. CentOS 7 使用 Yum 软件源安装谷歌 Chrome 浏览器

    Google Chrome是一款由 Google 公司开发的网页浏览器,新版的 Chrome 浏览器使用的是 Blink 内核,具有运行速度快,稳定的特性.Chrome 能够运行在 Windows,L ...

  5. java struts2入门学习---常用标签学习总结

    jsp页面中引入标签: <%@ taglib uri="/struts-tags" prefix="s"%> 常用标签知识点总结: <s:fi ...

  6. mysql 排序 oder by 和 使用hibernate 排序

    String sql="select * from sys_invitation where to_phone = '13000000000' order by create_time de ...

  7. libev与libevent区别

    摘自stackflow的回答,主要从架构上说明了二者的区别: As for design philosophy, libev was created to improve on some of the ...

  8. 【Oracle】Oracle约束的总结

    你对ORACLE约束的了解如何?比较模糊还是相当透彻?如果你对下面几个问题了如指掌的话,恭喜你,你已经对约束掌握得比较好了,不用看这篇文章了.ORACLE的约束有啥功能作用? 有哪些类型约束(不同版本 ...

  9. solr 5.3.1安装配置

    1.下载Solr5.3.1 http://mirror.bit.edu.cn/apache/lucene/solr/5.3.1/ wget http://mirror.bit.edu.cn/apach ...

  10. 《JAVA与模式》之建造者模式

    1.概念 将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示. [构建与表示分离,同构建不同表示] 与抽象工厂的区别:在建造者模式里,有个指导者,由指导者来管理建造者,用户是与指导者 ...