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

一个基本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会让放大缩小失效  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值