iOS - 视图与手势(UIview & UIGestureRecognizer)

01 UIView视图的基本使用 --- 在根视图中添加2个UIView视图

//视图确实加载时调用

- (void)viewDidLoad {

    [super viewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.

    

    //CGRect包含了原点和大小等信息.

    CGRect rect1 = CGRectMake(30, 50, 200, 200);

    UIView *view1 = [[UIView alloc] initWithFrame:rect1];

    [view1 setBackgroundColor:[UIColor brownColor]];

   

    CGRect rect2 = CGRectMake(60, 90, 200, 200);

    UIView *view2 = [[UIView alloc] initWithFrame:rect2];

    [view2 setBackgroundColor:[UIColor purpleColor]];

    [view2 setAlpha:0.5];

    

    [self.view addSubview:view1];

    [self.view addSubview:view2];

    

}

02 UIView视图的层次关系 --- 创建3个视图:视图1是视图2的父视图;视图2是视图3的父视图

 

- (void)viewDidLoad {

    [super viewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.

    

    

    UIView *view1 = [[UIView alloc] initWithFrame:CGRectMake(20, 80, 200, 280)];

    view1.backgroundColor = [UIColor redColor];

    [self.view addSubview:view1];

    

    UIView *view2 = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 200, 200)];

    [view2 setBounds:CGRectMake(-40, -20, 200, 200)];

    view2.backgroundColor = [UIColor yellowColor];

    [view1 addSubview:view2];

    

    UIView *view3 = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];

    view3.backgroundColor = [UIColor blueColor];

    [view2 addSubview:view3];

    

}

 

03 UIView视图的基本操作 --- 视图的添加与删除,以及切换视图在父视图中的层次

- (void)viewDidLoad {

    [super viewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.

    

    CGRect rect = CGRectMake(30, 50, 200, 200);

    UIView *view = [[UIView alloc] initWithFrame:rect];

    [view setBackgroundColor:[UIColor brownColor]];

    [self.view addSubview:view];

    

    UIButton *btAdd = [[UIButton alloc] initWithFrame:CGRectMake(30, 350, 80, 30)];

    [btAdd setBackgroundColor:[UIColor grayColor]];

    [btAdd setTitle:@"Add" forState:UIControlStateNormal];

    [btAdd addTarget:self action:@selector(addView) forControlEvents:UIControlEventTouchUpInside];

    [self.view addSubview:btAdd];

    

    UIButton *btBack = [[UIButton alloc] initWithFrame:CGRectMake(120, 350, 80, 30)];

    [btBack setBackgroundColor:[UIColor grayColor]];

    [btBack setTitle:@"Switch" forState:UIControlStateNormal];

    [btBack addTarget:self action:@selector(bringViewToBack) forControlEvents:UIControlEventTouchUpInside];

    [self.view addSubview:btBack];

    

    UIButton *btRemove = [[UIButton alloc] initWithFrame:CGRectMake(210, 350, 80, 30)];

    [btRemove setBackgroundColor:[UIColor grayColor]];

    [btRemove setTitle:@"Remove" forState:UIControlStateNormal];

    [btRemove addTarget:self action:@selector(removeView) forControlEvents:UIControlEventTouchUpInside];

    [self.view addSubview:btRemove];

    

}

 

-(void)addView {

    

    CGRect rect = CGRectMake(60, 90, 200, 200);

    UIView *view = [[UIView alloc] initWithFrame:rect];

    [view setBackgroundColor:[UIColor purpleColor]];

    [view setTag:1];

    

    [self.view addSubview:view];

}

04 UIView视图添加边框效果 --- 给一张图片添加一个彩色相框:

 

- (void)viewDidLoad {

    [super viewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.

    

    //UIImage是用来加载和绘制图像的类

    UIImage *uiimage = [UIImage imageNamed:@"pic"];

    //加载图像后,将图片赋值给UIImageView视图,可以将图像视图,看作是图片的容器

    UIImageView *imgView = [[UIImageView alloc] initWithImage:uiimage];

    

    imgView.frame = CGRectMake(60, 80, 206, 284);

    //设置图片视图的图层边框宽度,视图真正的绘图部分,是由一个叫CALayer的类来管理的

    imgView.layer.borderWidth = 10;

    //视图本身更像是一个图层的管理器,访问它的根绘图和坐标有关的属性,实际上都是在访问它所包含的图层的相关属性.

    imgView.layer.borderColor = [[UIColor purpleColor] CGColor];

    

    [self.view addSubview:imgView];

    

}

05 UIView视图添加圆角效果 --- 给矩形图片,添加圆角效果

 

 - (void)viewDidLoad {

    [super viewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.

    

    UIImage *img = [UIImage imageNamed:@"pic"];

    UIImageView *imgView = [[UIImageView alloc] initWithImage:img];

    

    CGRect rect = CGRectMake(60, 60, 200, 200);

    imgView.frame = rect;

    

    

    //设置图像层的圆角半径大小

    imgView.layer.cornerRadius = 100;

    //设置图像视图的层的遮罩覆盖属性,进行边界裁切

    imgView.layer.masksToBounds = YES;

    

    [self.view addSubview:imgView]; 

}

06 UIView视图添加阴影效果 --- 给矩形图片添加阴影效果

- (void)viewDidLoad {

    [super viewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.

    

    

    UIImage *img = [UIImage imageNamed:@"pic"];

    UIImageView *imgView = [[UIImageView alloc] initWithImage:img];

    

    CGRect rect = CGRectMake(60, 60, 206, 284);

    imgView.frame = rect;

    

//    //设置图像视图的阴影颜色

//    imgView.layer.shadowColor = [UIColor blackColor].CGColor;

//    //设置图像视图层的阴影的横向和纵向的偏移值

//    imgView.layer.shadowOffset = CGSizeMake(5.0f, 5.0f);

//    //设置图像视图层的阴影透明度

//    imgView.layer.shadowOpacity = 0.75;

//    //设置图像视图层的阴影半径大小

//    imgView.layer.shadowRadius = 10.0f;

 

    [self.view addSubview:imgView];

}

 

07 UIView视图的渐变填充 --- 创建一个渐变图形

- (void)viewDidLoad {

    [super viewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.

    

    CGRect rect = CGRectMake(60, 120, 600, 600);

    UIView *view = [[UIView alloc] initWithFrame:rect];

    view.backgroundColor = [UIColor whiteColor];

    

    

    //新建一个渐变层

    CAGradientLayer *gradientLayer = [CAGradientLayer layer];

    //设置渐变层的位置和尺寸,与视图对象一致

    gradientLayer.frame = view.bounds;

    

    //设置渐变的起始颜色为蓝色

    CGColorRef fromColor = [UIColor blueColor].CGColor;

    //设置渐变的中间颜色为红色

    CGColorRef midColor = [UIColor redColor].CGColor;

    //设置渐变的结束颜色为黄色

    CGColorRef toColor = [UIColor yellowColor].CGColor;

    

    //创建一个数组对象,存储三个颜色变量

    NSArray *colorArray = [NSArray arrayWithObjects:(__bridge id _Nonnull)(fromColor),midColor,toColor, nil];

    //设置渐变层的颜色数组属性为三个渐变色构建的数组.

    gradientLayer.colors = colorArray;

    

    //将渐变层添加到视图对象的层中

    [view.layer addSublayer:gradientLayer];

    

    [self.view addSubview:view];

    

}

08 UIView视图的纹理填充

     //新建一个颜色对象,并将导入的图片赋予该对象

    UIColor *background = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"bg.png"]];

    //再将此颜色对象,赋值给当前窗口根视图的背景

    self.view.backgroundColor = background;

 

09 CGAffineTransform仿射变换 -- 仿射变换,旋转视图

- (void)viewDidLoad {

    [super viewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.

    

    CGRect myImageRect = CGRectMake(50.0f, 150.0f, 200.0f, 50.0f);

    UIView *myView = [[UIView alloc] initWithFrame:myImageRect];

    myView.backgroundColor = [UIColor redColor];

    [self.view addSubview:myView];

    

    //Rotate

    //创建一个仿射变换变量,仿射变换可以用于平易、旋转、缩放变换路径或者图形上下文.

    CGAffineTransform transform = myView.transform;

    //选择使用旋转功能

    transform = CGAffineTransformRotate(transform, 3.14/4);

    //将变换变量,赋值给视图对象,完成变换操作.

    myView.transform = transform;

    

    

}

 

- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}

**********************************************************************************************************

使用iOS手势,完成视图的交互功能**********************************************************************************

**********************************************************************************************************

10 UITapGestureRecognizer手势之单击

 

- (void)viewDidLoad {

    [super viewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.

    

    CGRect rect = CGRectMake(100, 100, 107, 107);

    UIImageView *imgView = [[UIImageView alloc] initWithFrame:rect];

    

    //加载项目中的图片

    UIImage *img = [UIImage imageNamed:@"star.png"];

    //使用加载的图片,创建一个视图

    [imgView setImage:img];

    

    //开启图像视图的交互功能

    [imgView setUserInteractionEnabled:YES];

    [self.view addSubview:imgView];

    

    //UIKit中包含了手势识别的类,用于检测发生在设备中的各种首饰.

    UITapGestureRecognizer *guesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(singleTap)];

    //将手势指定给图像视图

    [imgView addGestureRecognizer:guesture];

    

}

 

-(void)singleTap {

    

    //当接受到手势事件后,弹出一个提示窗口

    UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Information" message:@"Single Tap" delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil];

    

    [alertView show];

    

}

11 UITapGestureRecognizer手势之长按

 

- (void)viewDidLoad {

    [super viewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.

    

    CGRect rect = CGRectMake(100, 100, 107, 107);

    UIImageView *imgView = [[UIImageView alloc] initWithFrame:rect];

    

    UIImage *img = [UIImage imageNamed:@"star.png"];

    [imgView setImage:img];

    

    //激活图像视图的交互功能

    [imgView setUserInteractionEnabled:YES];

    //将图像视图添加到当前视图控制器的根视图

    [self.view addSubview:imgView];

    

    //创建一个长按手势对象,用于检测发生在设备中的长按手势.

    UILongPressGestureRecognizer *guesture = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPress:)];

    //将手势指定给视图对象

    [imgView addGestureRecognizer:guesture];

    

}

 

//创建接受手势视图的方法

-(void)longPress:(UILongPressGestureRecognizer *)guesture {

    

    //检测手势事件的阶段

    if (guesture.state) {

        

        //当接受到手势事件时,弹出一个窗口

        UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Information" message:@"Long press" delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil];

        

        [alertView show];

    }

    

}

 

12 UITapGestureRecognizer手势之双击

- (void)viewDidLoad {

    [super viewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.

    

    CGRect rect = CGRectMake(100, 100, 107, 107);

    UIImageView *imgView = [[UIImageView alloc] initWithFrame:rect];

    

    UIImage *img = [UIImage imageNamed:@"star.png"];

    [imgView setImage:img];

 

    //激活图像视图的交互功能

    [imgView setUserInteractionEnabled:YES];

    //将图像视图添加到当前视图控制器的根视图

    [self.view addSubview:imgView];

    

    //创建一个手势对象

    UITapGestureRecognizer *guesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(doubleTap)];

    //设置点击次数为2,模拟双击事件

    [guesture setNumberOfTapsRequired:2];

    //设置为单次双击事件

    [guesture setNumberOfTouchesRequired:1];

    //将手势指定给图像视图对象

    [imgView addGestureRecognizer:guesture];

}

 

//创建接受手势事件的方法

-(void)doubleTap {

    

    UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"information" message:@"Double Tap" delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil];

 

    [alertView show];

}

 

转载于:https://www.cnblogs.com/share-iOS/p/5815614.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值