//

//  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. 如何解决input file 选取相同文件后,change事件不起作用解决方法

    两种方法 1.在你的input所属的form表单reset()就可以了! $("#avatorForm")[0].reset(); 2.设置你的input file value值为 ...

  2. codeblocks编译pthread问题

    默认的编译选项是没有pthread的,所以要自己添加: 参考:http://hi.baidu.com/u_soa/item/9d6cc40b7e9d76eb3499024d 错误: undefined ...

  3. 九款命令行工具助力Linux环境下的数据分析

    对于大多数熟悉了图形工作环境的朋友来说,电子表格工具无疑是第一选项.但命令行工具同样能够更快更高效地解决问题——且只须稍微学习即可上手. 大部分此类工具冻严格局限于Linux,而多数可同样运行在Uni ...

  4. Fix SCRIPT5009: “RegisterSod” undefined error

    When I set up development environment for apps for SharePoint 2013 and quickly get apps from SharePo ...

  5. SharePoint CAML In Action——Part II

    在SharePoint中,相对于Linq to SharePoint而言,CAML是轻量化的.当然缺点也是显而易见的,"Hard Code"有时会让你抓狂.在实际场景中,经常会根据 ...

  6. stm32定时器主从模式

    TIM2作master:TIM3,TIM4作slave 定时器2事件更新被用作触发输出TRGO 从定时器TIM3,TIM4工作在从模式:门控模式 触发选择设为:ITR1,这样TIM2的TRGO就连到了 ...

  7. 【转载】使用 Google Guava 美化你的 Java 代码

    转载地址: https://blog.csdn.net/wisgood/article/details/13297535 原文地址:https://my.oschina.net/leejun2005/ ...

  8. eclipse热部署配置

    1. 方法一 打开server.xml,找到 比对下:改成下面这样: <Context docBase="dreamlive" path="/ROOT"  ...

  9. [转]在windows上实现多个java jdk的共存解决办法

    问题背景 公司项目中应用到的jdk环境为1.6,最近在家学习IntelliJ IDEA中sdk多环境配置时,想安装Jdk1.8,作为学习基础.那么问题来了,公司项目扩展不支持jdk1.8,为了既能满足 ...

  10. 三角函数 与 JavaScript

    三角函数   canvas 和 JavaScript 中所有与角相关的API如Math.sin().Math.cos().Math.tan(),都需要以弧度为单位值.但大部分人还是习惯以角度单位.所以 ...