iOS中使用transform的缩放、平移、旋转
2015-08-31 23:40
441 查看
iOS中使用transform的缩放、平移、旋转
先看一下界面布局效果,点击对图片进行相应操作,滑动滑块还可切换图片
先看一下界面布局效果,点击对图片进行相应操作,滑动滑块还可切换图片
#import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; _image = [[UIImageView alloc ]initWithFrame:CGRectMake(0, 20, self.view.frame.size.width, 300)]; _image.image = [UIImage imageNamed:@"0.jpg"]; _image.userInteractionEnabled = YES; [self.view addSubview:_image]; UISlider *slider = [[UISlider alloc]initWithFrame:CGRectMake(40, 400, 250, 25)]; [slider addTarget:self action:@selector(sliderAction:) forControlEvents:UIControlEventValueChanged]; slider.maximumValue = 10; slider.minimumValue = 0; slider.value = 0; [self.view addSubview:slider]; //缩放按钮,宽高同时缩放 _scaleBig = [[UIButton alloc]initWithFrame:CGRectMake(20, 450, 40, 40)]; [_scaleBig setTitle:@"放大" forState:UIControlStateNormal]; [_scaleBig setTag:100]; [_scaleBig setTitleColor:[UIColor blackColor] forState:UIControlStateNormal ]; [_scaleBig addTarget:self action:@selector(scale:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:_scaleBig]; //缩小 _scaleSmall = [[UIButton alloc]initWithFrame:CGRectMake(80, 450, 40, 40)]; [_scaleSmall setTitle:@"缩小" forState:UIControlStateNormal]; [_scaleSmall setTag:101]; [_scaleSmall setTitleColor:[UIColor blackColor] forState:UIControlStateNormal ]; [_scaleSmall addTarget:self action:@selector(scale:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:_scaleSmall]; //旋转,左转 _revolveLeft = [[UIButton alloc]initWithFrame:CGRectMake(140, 450, 40, 40)]; [_revolveLeft setTitle:@"左转" forState:UIControlStateNormal]; [_revolveLeft setTag:102]; [_revolveLeft setTitleColor:[UIColor blackColor] forState:UIControlStateNormal ]; [_revolveLeft addTarget:self action:@selector(revolve:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:_revolveLeft]; //右转 _revolveRight = [[UIButton alloc]initWithFrame:CGRectMake(200, 450, 40, 40)]; [_revolveRight setTitle:@"右转" forState:UIControlStateNormal]; [_revolveRight setTag:103]; [_revolveRight setTitleColor:[UIColor blackColor] forState:UIControlStateNormal ]; [_revolveRight addTarget:self action:@selector(revolve:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:_revolveRight]; //平移,左移 _translationLeft = [[UIButton alloc]initWithFrame:CGRectMake(260, 450, 40, 40)]; [_translationLeft setTitle:@"左移" forState:UIControlStateNormal]; [_translationLeft setTag:104]; [_translationLeft setTitleColor:[UIColor blackColor] forState:UIControlStateNormal ]; [_translationLeft addTarget:self action:@selector(transform:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:_translationLeft]; //右移 _translationRight = [[UIButton alloc]initWithFrame:CGRectMake(320, 450, 40, 40)]; [_translationRight setTitle:@"右移" forState:UIControlStateNormal]; [_translationRight setTag:105]; [_translationRight setTitleColor:[UIColor blackColor] forState:UIControlStateNormal ]; [_translationRight addTarget:self action:@selector(transform:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:_translationRight]; //平移,上移 _translationUp = [[UIButton alloc]initWithFrame:CGRectMake(260, 480, 40, 40)]; [_translationUp setTitle:@"上移" forState:UIControlStateNormal]; [_translationUp setTag:106]; [_translationUp setTitleColor:[UIColor blackColor] forState:UIControlStateNormal ]; [_translationUp addTarget:self action:@selector(transform:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:_translationUp]; //下移 _translationDown = [[UIButton alloc]initWithFrame:CGRectMake(320, 480, 40, 40)]; [_translationDown setTitle:@"下移" forState:UIControlStateNormal]; [_translationDown setTag:107]; [_translationDown setTitleColor:[UIColor blackColor] forState:UIControlStateNormal ]; [_translationDown addTarget:self action:@selector(transform:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:_translationDown]; //恢复原位 _recovery = [[UIButton alloc]initWithFrame:CGRectMake(20, 480, 40, 40)]; [_recovery setTitle:@"恢复" forState:UIControlStateNormal]; [_recovery setTag:108]; [_recovery setTitleColor:[UIColor blackColor] forState:UIControlStateNormal ]; [_recovery addTarget:self action:@selector(recovery:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:_recovery]; } - (void) sliderAction:(UISlider *)slider{ NSString *s = [NSString stringWithFormat:@"%ld.jpg",(NSInteger)slider.value]; _image.image = [UIImage imageNamed:s]; } - (IBAction)scale:(UIButton *)sender{ CGAffineTransform transform1 = _image.transform; if (sender.tag == 100) { _image.transform = CGAffineTransformScale(transform1, 1.1, 1.1); } if (sender.tag == 101) { _image.transform = CGAffineTransformScale(transform1, 0.9, 0.9); } } - (IBAction)revolve:(UIButton *)sender{ CGAffineTransform transform2 = _image.transform; if (sender.tag == 102) { _image.transform = CGAffineTransformRotate(transform2, 0.3); } if (sender.tag == 103) { _image.transform = CGAffineTransformRotate(transform2, -0.3); } } - (IBAction)transform:(UIButton *)sender{ CGAffineTransform transform3 = _image.transform; if (sender.tag == 104) { _image.transform = CGAffineTransformTranslate(transform3, -20, 0); } if (sender.tag == 105) { _image.transform = CGAffineTransformTranslate(transform3, 20,0); } if (sender.tag == 106) { _image.transform = CGAffineTransformTranslate(transform3, 0, -20); } if (sender.tag == 107) { _image.transform = CGAffineTransformTranslate(transform3, 0, 20); } } - (IBAction)recovery:(UIButton *)sender{ _image.transform = CGAffineTransformIdentity; } @end
相关文章推荐
- iOS学习之 plist文件的读写
- iOS——创建Xcode 的Hello World
- iOS 定时器
- iOS Today Extension/widget编程小记
- iOS使用autolayout和sizeclass 解决适配问题(一)
- IOS之 TableVIewContrller
- iOS之字符串编码GBK转UTF-8
- iOS学习总结之清理缓存
- 【读书笔记】iOS-NSString的length
- 【读书笔记】iOS-NSString的length
- ios 本地推送和远程推送(APNS)
- iOS:音频
- iOS --- 通过CoreImage实现的简单滤镜效果
- iOS --- 通过CPU实现的简单滤镜效果
- ios 通知的使用
- iOS中assign,copy,retain之间的区别以及weak和strong的区别
- IOS 开发笔记——做日历开发的总结
- ios MVC笔记
- IOS 字符串删除某一个字符
- 苹果开发 笔记(67)模态弹出和退出窗口