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

【成长记录】iOS程序图标的基本控制

2015-03-14 10:26 162 查看
一个基本ios图标控件的操作,实现button 的一个上下左右放大缩小旋转的基本操作
#import "ViewController.h"

@interface ViewController ()

-(IBAction)move:(UIButton *)btn;
-(IBAction)big;
-(IBAction)small;
-(IBAction)leftRotata;
-(IBAction)rightRotata;
//头像
@property (nonatomic,weak) IBOutlet UIButton *head;
@end

@implementation ViewController
#pragma mark 移动
-(void)move:(UIButton *)btn{
//1.取出原来的属性
CGRect tempF = self.head.frame;
//2,修改原来的属性
CGFloat delta = 10;
switch (btn.tag) {
case 1://上
tempF.origin.y -= delta;
break;
case 2://下
tempF.origin.y += delta;
break;
case 3://左
tempF.origin.x -= delta;
break;
case 4://右
tempF.origin.x += delta;
break;
}
//3,重新复制
self.head.frame = tempF;
}
#pragma mark 放大
-(IBAction)big{
//取出原来的属性;
CGRect tempf = self.head.frame;
//改变size属性
tempf.size.height += 10;
tempf.size.width += 10;
//赋值
self.head.frame = tempf;
}
#pragma mark 缩小
-(IBAction)small{
//取出原来的值
CGRect tempFrame = self.head.frame;
//改变属性
tempFrame.size.height -= 10;
tempFrame.size.width -= 10;
//把临时frame赋值回去
self.head.frame = tempFrame;
}
#pragma mark 左旋转
-(IBAction)leftRotata{
//1取得头像
UIButton *head = (UIButton *)[self.view viewWithTag:10];
//2想左旋转45度
//角度是正数:顺时针 角度是负数:逆时针
//head.transform = CGAffineTransformMakeRotation(-M_PI_4);
head.transform = CGAffineTransformRotate(head.transform, -M_PI_4);
}
#pragma mark 右旋转
-(IBAction)rightRotata{
//1取得头像
UIButton *head = (UIButton *)[self.view viewWithTag:10];
//2想左旋转45度
//角度是正数:顺时针 角度是负数:逆时针
//head.transform = CGAffineTransformMakeRotation(-M_PI_4);
head.transform = CGAffineTransformRotate(head.transform, M_PI_4);
}

- (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.
}

@end

效果图  



出现的问题:  
2 transform的应用是可以改变 位置/大小/旋转  

3 使用transform需要给空间添加一个tag。来获取到控件  

4 transfrom中的两个方法  

第一个只做一次旋转,一次执行  

CGAffineTransformMakeRotation(-M_PI_4);  

第二个方法将控件的transform再次传道参数的方法中,再次赋值,反复使用  

CGAffineTransformRotate(head.transform, M_PI_4);  

5 iOS7之后中使用    use  auto layout会让放大缩小失效  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: