iOS开发transform的使用
//
// 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的使用的更多相关文章
- Hello_IOS ios开发transform属性
#import "ViewController.h" @interface ViewController () @property (weak, nonatomic) IBOutl ...
- ios开发transform属性
#import "ViewController.h" @interface ViewController () @property (weak, nonatomic) IBOutl ...
- iOS开发 -------- transform属性(形变)
一 transform属性 在OC中,通过transform属性可以修改对象的平移,比例和旋转角度 常用的创建transform结构体的方法分两大类 (1) 创建"基于控件初始位置&qu ...
- iOS开发基础篇-transform属性
一. transform 属性 在OC中,通过 transform 属性可以修改对象的平移.缩放比例和旋转角度. 1)创建“基于控件初始位置”的形变 CGAffineTransformMakeRot ...
- iOS开发系列--打造自己的“美图秀秀”
--绘图与滤镜全面解析 概述 在iOS中可以很容易的开发出绚丽的界面效果,一方面得益于成功系统的设计,另一方面得益于它强大的开发框架.今天我们将围绕iOS中两大图形.图像绘图框架进行介绍:Quartz ...
- iOS开发系列--Swift进阶
概述 上一篇文章<iOS开发系列--Swift语言>中对Swift的语法特点以及它和C.ObjC等其他语言的用法区别进行了介绍.当然,这只是Swift的入门基础,但是仅仅了解这些对于使用S ...
- iOS开发——创建你自己的Framework
如果你想将你开发的控件与别人分享,一种方法是直接提供源代码文件.然而,这种方法并不是很优雅.它会暴露所有的实现细节,而这些实现你可能并不想开源出来.此外,开发者也可能并不想看到你的所有代码,因为他们可 ...
- iOS开发系列--无限循环的图片浏览器
--UIKit之UIScrollView 概述 UIKit框架中有大量的控件供开发者使用,在iOS开发中不仅可以直接使用这些控件还可以在这些控件的基础上进行扩展打造自己的控件.在这个系列中如果每个控件 ...
- ios开发中的小技巧
在这里总结一些iOS开发中的小技巧,能大大方便我们的开发,持续更新. UITableView的Group样式下顶部空白处理 //分组列表头部空白处理 UIView *view = [[UIViewal ...
随机推荐
- DialogFragment 监听按键事件的方法(onkeydown)
我们在TV软件开发的时候,会使用DialogFragment,有时候要对它的按键事件进行监听,但是DialogFragment的监听方法和其它的不一样. ...
- ios中滚动页面
- (id)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { int width=frame. ...
- ios中VRGCalendarView日历控件
http://pan.baidu.com/share/link?shareid=4166002480&uk=923776187 官网 https://github.com/TjeerdVuri ...
- ios总结目录
:iOS中er二维码的使用 http://www.cnblogs.com/gcb999/p/3183655.html :iOS中根据数据自动生成有规律的(UItextField和UILabel) IO ...
- Maven Package Plugins And Maven Test
在使用Maven时候,大家避免不了使用大量插件: 1. maven-compiler-plugin 指定JDK版本和编码方式 ? ?compiler插件能解决2个问题: 第一:指定JDK版本--mav ...
- 深入学习 Git 工作流
原文 https://github.com/xirong/my-git/blob/master/git-workflow-tutorial.md 个人在学习git工作流的过程中,从原有的 SVN ...
- MySql随手记要
1. 显示当前正在执行的进程. SHOW FULL PROCESSLIST 2. 显示执行计划. EXPLAIN SQL语句. 3. 强制使用索个索引. 在表名后面接 FORCE INDEX(索引名称 ...
- HTML CSS边框阴影的实现
一款用CSS控制背景图像平铺,从而实现区域边框阴影的效果,虽然用到了图片,但可贵之处是本代码不管你需要阴影的区域是多大,它都能自动适应,因些还是很值得收藏一下的,兼容所有的IE浏览器. <!DO ...
- ConcurrentHashMap vs Collections.synchronizedMap()不同
之前项目中,有用到过Collections.synchronizedMap(),后面发现当并发数很多的时候,出现其他请求等待情况,因为synchronizedMap会锁住所有的资源,后面通过查阅资料, ...
- java多线程学习--java.util.concurrent (转载)
题记:util和concurrent 包是后续重点先看的和学习的模块 原文地址:http://www.cnblogs.com/sunhan/p/3817806.html CountDownLatch, ...