您的位置:首页 > 移动开发 > IOS开发

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: