文档章节

给UIImageView添加各种手势

zhaoyanjie552
 zhaoyanjie552
发布于 2015/08/14 21:23
字数 578
阅读 33
收藏 0
//先创建图片

 UIImageView * imageView = [[UIImageView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
    imageView.image = [UIImage imageNamed:@"10_0.jpg"];
    
    imageView.tag = 1;

    //添加滑动手势
   [imageView addGestureRecognizer:sgr];
    
    imageView.userInteractionEnabled=YES;
    
    
    UISwipeGestureRecognizer *rightsgr=[[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeClick:)];
    rightsgr.direction=UISwipeGestureRecognizerDirectionRight;
    
    [imageView addGestureRecognizer:rightsgr];
    
    
    
    [self.view addSubview:imageView];
}


-(void)swipeClick:(UISwipeGestureRecognizer*)sgr
{ //四个手势监听四个方向,四个手势可以都响应这个方法,然后在这个方法里判断手势的方向。
    if (sgr.direction & UISwipeGestureRecognizerDirectionRight)
        NSLog(@"向右滑动了");
    else if (sgr.direction & UISwipeGestureRecognizerDirectionLeft)
        NSLog(@"向左滑动了");
    else if (sgr.direction & UISwipeGestureRecognizerDirectionUp)
        NSLog(@"向上滑动了");
    else if (sgr.direction & UISwipeGestureRecognizerDirectionDown)
        NSLog(@"向下滑动了");}
//添加点击手势 为图片添加点击手势很方便的

 UIImageView * imageView = [[UIImageView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
    imageView.image = [UIImage imageNamed:@"10_0.jpg"];
    
    imageView.tag = 1;
   
    //给imageView添加敲击手势
    UITapGestureRecognizer *tgr=[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapClick:)];
     //这个事件表示,发生敲击,响应[target action];
    [imageView addGestureRecognizer:tgr];
    
    imageView.userInteractionEnabled=YES;
    
    
    [self.view addSubview:imageView];
    
    //一个手势只能添加到一个视图上,但一个视图可以添加多个手势
    //添加双击手势
    UITapGestureRecognizer *doubleTap=[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(doubleTapClick:)];
    
    [imageView addGestureRecognizer:doubleTap];
    
    doubleTap.numberOfTapsRequired=2;
    
    
    //设置双击失败,才响应单击
    [tgr requireGestureRecognizerToFail:doubleTap];
     //优先响应双击,确定不双击,才响应单击
}


-(void)tapClick:(UITapGestureRecognizer*)tgr
{

    //    获得拥有手势的视图 适合所有手势
   // UIView * view = tgr.view;
    NSLog(@"图片发生敲击事件");
    //可以在这里图片进行点击处理 不用再给图片添加点击方法
    
}

-(void)doubleTapClick:(UITapGestureRecognizer*)tgr
{
     NSLog(@"图片被双击了!你跟hello kitty有多大仇?");
    
}
//捏合手势 在图片的放大方面很有用的 想看高清图片时很有用
- (void)createImageView
{
    UIImageView * imageView = [[UIImageView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
    imageView.image = [UIImage imageNamed:@"10_0.jpg"];
    
    imageView.center=self.view.center;
    
    imageView.tag = 1;
    
    /*给imageView添加捏合手势*/
    UIPinchGestureRecognizer *pgr=[[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(pich:)];
    
    [imageView addGestureRecognizer:pgr];

    
    imageView.userInteractionEnabled = YES;
    
    [self.view addSubview:imageView];

    
}

-(void)pich:(UIPinchGestureRecognizer*)pgr
{
    //用来保存我们每次捏合的结果
    static CGFloat scale = 1;
    
    pgr.view.transform=CGAffineTransformMakeScale(scale*pgr.scale, pgr.scale*scale);
    
    //scale是上次捏合结果比如50%,pgr.scale是本次手指捏合的比例如50%,最后结果25%
    //随着捏合,pgr.scale不断改变
    
    if (pgr.state==UIGestureRecognizerStateEnded) {
        
        scale*=pgr.scale;
    }
}
//还有摇动手势
- (void)createImageView
{
    UIImageView * imageView = [[UIImageView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
    
    NSString *str=[[NSBundle mainBundle] pathForResource:@"10_3" ofType:@"jpg"];
    NSData *data=[NSData dataWithContentsOfFile:str];
    
    imageView.image=[UIImage imageWithData:data];
    
   // imageView.image = [UIImage imageNamed:@"10_3.jpg"];
    
    //启动动画
    [imageView shakeWithRaid:0.5 duration:0.5 repeatCount:0];
    //停止
    //    [imageView stopShake];
    
    [self.view addSubview:imageView];

}



© 著作权归作者所有

zhaoyanjie552
粉丝 0
博文 1
码字总数 578
作品 0
郑州
私信 提问
iOS画板实现第二波

画板实现第二波 1.将对图片添加一系列手势操作,原有实现不能实现 以前详细说明个六种手势在控件上的操作(手势只能添加在控件上) 对原有代码进行改造 1.1添加一个图片处理的VIEW 1.2图片v...

AppleDream
2016/07/04
28
0
常用UI控件之UIImageView

1.UIImageView概述及初始化方法 UIImageView继承于UIView,主要用于在界面上现实图片,图片可以自动适应UIImageView的宽度和高度,而不用修改 分辨率(UIButton也可以自适应大小) 1.1初始化方法:...

tuwangsheng
2014/04/27
0
0
objective-c UIImageView

// // ViewController.m // UIImageView // // Created by 非凡 程序员 on 15/11/12. // Copyright (c) 2015年 非凡 程序员. All rights reserved. // #import "ViewController.h" @interfa......

xtzPioneer
2015/11/13
181
0
疯狂ios讲义之实例:通过捏合手势缩放图片

实例:通过捏合手势缩放图片 捏合手势处理器可以检测到用户手势捏合的比例,解析该捏合比例即可对图片进行缩放。本实例将通过捏合手势对图片进行缩放。创建一个Single View Application,该应...

博文视点
2014/03/28
12.2K
1
Swift开发:仿Clear手势操作(拖拽、划动、捏合)UITableView

这是一个完全依靠手势的操作ToDoList的演示,功能上左划删除,右划完成任务,拖拽调整顺序,捏合张开插入。 项目源码: https://github.com/luan-ma/ClearStyleDemo.Swift 初始化 TDCToDoIte...

luan.ma
2016/01/03
266
0

没有更多内容

加载失败,请刷新页面

加载更多

nginx学习笔记

中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯。 是连接两个独立应用程序或独立系统的软件。 web请求通过中间件可以直接调用操作系统,也可以经过中间件把请求分发到多...

码农实战
今天
5
0
Spring Security 实战干货:玩转自定义登录

1. 前言 前面的关于 Spring Security 相关的文章只是一个预热。为了接下来更好的实战,如果你错过了请从 Spring Security 实战系列 开始。安全访问的第一步就是认证(Authentication),认证...

码农小胖哥
今天
10
0
JAVA 实现雪花算法生成唯一订单号工具类

import lombok.SneakyThrows;import lombok.extern.slf4j.Slf4j;import java.util.Calendar;/** * Default distributed primary key generator. * * <p> * Use snowflake......

huangkejie
昨天
12
0
PhotoShop 色调:RGB/CMYK 颜色模式

一·、 RGB : 三原色:红绿蓝 1.通道:通道中的红绿蓝通道分别对应的是红绿蓝三种原色(RGB)的显示范围 1.差值模式能模拟三种原色叠加之后的效果 2.添加-颜色曲线:调整图像RGB颜色----R色增强...

东方墨天
昨天
11
1
将博客搬至CSDN

将博客搬至CSDN

算法与编程之美
昨天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部