ios学习之个人笔记(按钮操作)

来源:互联网 发布:诛仙三卡级软件 编辑:程序博客网 时间:2024/05/20 18:42

此小程序主要实现下面按钮对“图片按钮”的操作,移动、放大、缩小和旋转的功能。
最终效果图:
这里写图片描述

//这里是用到的属性和方法声明@interface ViewController ()@property (weak, nonatomic) IBOutlet UIButton *btnImg;- (IBAction)move:(UIButton *)sender;- (IBAction)rotate:(UIButton *)sender;- (IBAction)scale:(UIButton *)sender;@end
//移动方法- (IBAction)move:(UIButton *)sender {    //设置动画    [UIView animateWithDuration:0.7 animations:^{        //1)获取图片原始frame        CGRect orginFrame = self.btnImg.frame;        //根据tag判断当前是那个按钮        switch (sender.tag) {            case 10:                orginFrame.origin.y-=10;                break;            case 20:                orginFrame.origin.x-=10;                break;            case 30:                orginFrame.origin.y+=10;                break;            case 40:                orginFrame.origin.x+=10;                break;        }        self.btnImg.frame = orginFrame;    }];}

移动方法主要是通过图片按钮的frame.origin来改变其X和Y轴的坐标实现
frame.origin是CGPoint结构体如下
struct CGPoint {
CGFloat x;
CGFloat y;
};

//放大、缩小方法- (IBAction)scale:(UIButton *)sender {    //设置动画    [UIView animateWithDuration:0.7 animations:^{        //1)获取原始图片大小        CGRect originFrame = self.btnImg.frame;        switch (sender.tag) {            case 100:                originFrame.size.width+=10;                originFrame.size.height+=10;                break;            case 200:                originFrame.size.width-=10;                originFrame.size.height-=10;                break;        }        self.btnImg.frame = originFrame;    }];}

放大、缩小通过图片按钮的frame.size改变其width和height大小实现。
frame.size也是个结构体如下
struct CGSize {
CGFloat width;
CGFloat height;
};

//旋转- (IBAction)rotate:(UIButton *)sender {    CGFloat angle = (sender.tag) ? M_2_PI : -M_2_PI;    self.btnImg.transform = CGAffineTransformRotate(self.btnImg.transform, angle);}

旋转是改变其角度,设置旋转按钮的tag分别为1和0,通过耳目运算符获得改变的角度大小,然后通过CGAffineTransformRotate(self.btnImg.transform, angle)进行改变。
此方法第一个参数为基于什么位置进行改变,第二个参数是旋转的角度大小。
按钮操作素材

1 0
原创粉丝点击