UIKit - UIButton 旋钮操作

UIKit - UIButton 按钮操作

UIButton 按钮操作

/*
 一 UIVIew 常见属性
 1.frame 位置和尺寸(以父控件的左上角为原点(0,0))
 2.center 中点 (以父控件的左上角为原点(0,0))
 3.bounds 位置和尺寸(以自己的左上角为原点 (0,0))
 4.transform 形变属性(缩放,旋转)
 5.backgroundColor 背景颜色
 6.tag 标识(父控件可以根据这个标识找到对应的子控件,同一个父控件中的子控件不要一样)
 7. hidden 设置是否要隐藏
 8.alpha 透明度(0~1);
 9.opaque 不透明度(0~1);
 10.userInteractionEnabled 能否跟用户进行交互(YES 能交互)
 11.superView 父控件
 12.subviews 子控件
 13.contentMode 内容显示的模式 拉伸自适应


 */

//要求会使用UIView的frame、transform属性改变大小和旋转
#import "ViewController.h"

@interface ViewController ()
- (IBAction)moveAndBig;

- (IBAction)move:(UIButton* )btn;

- (IBAction)big;
- (IBAction)small;


- (IBAction)leftRotate;
- (IBAction)up;
- (IBAction)large;

//头像
@property(nonatomic,weak) IBOutlet UIButton* head;

@end

@implementation ViewController

// 使用动画实现边移动边放大
- (IBAction)moveAndBig
{
    //1.开启动画
    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:2.0];   //时间间隔

    //2.修改属性
    CGRect tempF =self.head.frame;
    tempF.origin.x+=50;
    tempF.origin.y+=100;

    tempF.size.width+=50;
    tempF.size.height+=50;
    self.head.frame=tempF;

    //3.提交动画
    [UIView commitAnimations];

}

#pragma mark 移动(上下左右)
- (IBAction)move:(UIButton* )btn
{
    //1.取出原来的属性
    CGRect tempF=self.head.frame;

    //2.修改临时属性
    CGFloat delta=10;
    switch (btn.tag) {
        case 10: //上
            tempF.origin.y-=delta;
            break;
        case 20: //下
            tempF.origin.y+=delta;
            break;
        case 30: //左
            tempF.origin.x-=delta;
            break;
        case 40: //右
            tempF.origin.x+=delta;
            break;
    }
    //3.重新赋值
    self.head.frame=tempF;
}

#pragma mark 放大
- (IBAction)big
{
    //1.取出原来的属性
    CGRect tempFrame =self.head.frame;

    // 2.改变临时属性
    tempFrame.size.width += 20;
    tempFrame.size.height += 20;

    // 3.用临时属性覆盖原来的属性
    self.head.frame = tempFrame;
}

#pragma mark 缩小
- (IBAction)small
{
    // 1.取出原来的属性
    CGRect tempFrame = self.head.frame;

    // 2.改变临时属性
    tempFrame.size.width -= 20;
    tempFrame.size.height -= 20;

    // 3.用临时属性覆盖原来的属性
    self.head.frame = tempFrame;
}


#pragma mark transfor属性,可以(旋转、改变位置、大小)
- (IBAction)leftRotate
{
    //获取按钮图像
    UIButton* head =(UIButton*)[self.view viewWithTag:50];
    head.transform=CGAffineTransformRotate(head.transform, -M_PI_4);

}


- (IBAction)up
{
    //获取按钮图像
    UIButton* head =(UIButton*)[self.view viewWithTag:50];
      head.transform=CGAffineTransformTranslate(head.transform, 0,-10);
}
- (IBAction)large
{
    //获取按钮图像
    UIButton* head =(UIButton*)[self.view viewWithTag:50];
    head.transform=CGAffineTransformScale(head.transform, 1.5,1.5);
}



@end