文档章节

关于手势

Sniper_Tei
 Sniper_Tei
发布于 2015/04/09 11:30
字数 367
阅读 46
收藏 0

// 手势 Gesture

// 1.轻拍Tap

UITapGestureRecognizer *tap = [[UITapGestureRecognizer allocinitWithTarget:self action:@selector(tapAction:)];


// 设置需要点击几次才会触发方法

tap.numberOfTapsRequired = 2;

tap.numberOfTouchesRequired = 2;


// 把手势加入到图片上

[imageView addGestureRecognizer:tap];

// 内存管理



- (void)tapAction:(id)sender {

    NSLog(@"taped an image");


}


// 2.长按 LongPress

UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer allocinitWithTarget:self action:@selector(longPress:)];

// 设置一下长按需要的最短时间

longPress.minimumPressDuration = 3;

// 判断在长按过程中允许手指移动的距离

longPress.allowableMovement = 100;

[imageView addGestureRecognizer:longPress];


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

    // 长按的方法在手势的各个状态中都会进行触发,所以需要进行判断

    if (longPress.state == UIGestureRecognizerStateBegan) {

        NSLog(@"开始长按了");

    }

    

    NSLog(@"long pressed");


}



// 3.旋转 rotation

UIRotationGestureRecognizer *rotation = [[UIRotationGestureRecognizer allocinitWithTarget:self action:@selector(rotationAction:)];

[imageView addGestureRecognizer:rotation];



- (void)rotationAction:(UIRotationGestureRecognizer *)rotationGesture {

    // 获得添加手势的视图

    UIImageView *imageView = (UIImageView *)[rotationGesture view];

    // 调整视图的transform属性

    imageView.transform = CGAffineTransformMakeRotation(rotationGesture.rotation);


}


// 4.捏合 pinch

UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer allocinitWithTarget:self action:@selector(pinchAction:)];

[imageView addGestureRecognizer:pinch];



- (void)pinchAction:(UIPinchGestureRecognizer *)pinchGesture {

    UIImageView *imageView = (UIImageView *)[pinchGesture view];

    

    imageView.transform = CGAffineTransformMakeScale(pinchGesture.scale, pinchGesture.scale);

    

//    imageView.transform = CGAffineTransformScale(imageView.transform, pinchGesture.scale, pinchGesture.scale);

//    pinchGesture.scale = 1;


}


// 5.拖拽 pan

UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer allocinitWithTarget:self action:@selector(panAction:)];

[imageView addGestureRecognizer:pan];



- (void)panAction:(UIPanGestureRecognizer *)panGesture {

    // 获取拖拽手势添加的视图

    UIImageView *imageView = (UIImageView *)[panGesture view];

    // 获取手势经过的点

    CGPoint p = [panGesture translationInView:imageView];

    // 然后对视图的transform属性进行改变

    imageView.transform = CGAffineTransformMakeTranslation(p.x, p.y);

//    imageView.transform = CGAffineTransformTranslate(imageView.transform, p.x, p.y);

//    [panGesture setTranslation:CGPointZero inView:imageView];


}


// 6.轻扫

UISwipeGestureRecognizer *swipe = [[UISwipeGestureRecognizer allocinitWithTarget:self action:@selector(swipeAction:)];

[imageView addGestureRecognizer:swipe];

[swipe release];


- (void)swipeAction:(UISwipeGestureRecognizer *)swipeGesture {

    if (swipeGesture.direction == UISwipeGestureRecognizerDirectionLeft) {

        NSLog(@"向左");

    } else if (swipeGesture.direction == UISwipeGestureRecognizerDirectionRight) {

        NSLog(@"向右");

    } else if (swipeGesture.direction == UISwipeGestureRecognizerDirectionUp) {

        NSLog(@"向上");

    } else if (swipeGesture.direction == UISwipeGestureRecognizerDirectionDown) {

        NSLog(@"向下");

    }


}


© 著作权归作者所有

下一篇: 导航栏,状态栏
Sniper_Tei
粉丝 0
博文 5
码字总数 1404
作品 0
大连
私信 提问
iOS 仿QQ侧边栏

iOS 仿QQ侧边栏 Harries Blog™2017-12-280 阅读 githttpIOGitHubAPIhttpsIDE 分析:QQ侧边栏都用了哪些手势,有哪些效果? QQ的主页是个 UI TabbarController,暂且称为MainVc左侧边缘添加的...

Harries Blog™
2017/12/28
0
0
用typescript开发手势库 - (1)web开发常用手势有哪些?

这只是个开头 说在最前面,本文是一个系列文章的开头, 这个系列里我会讲如何用typescript开发一款支持pc和手机端的手势库any-touch, 以及通过jest让你的代码测试覆盖率100%. 今天我们先不写代...

铁皮饭盒
03/19
0
0
iOS Button快捷处理点击事件 与View快捷处理添加单击手势(二)

上篇讲了Button的快捷处理点击事件,有没看过的朋友可以过去看一下 iOS Button快捷处理点击事件 与View快捷处理添加手势(一) 这一篇主要给大家分享一下快捷处理View手势点击事件,通常我们...

Mikebanana
2017/08/28
0
0
iOS开发中的手势体系——UIGestureRecognizer分析及其子类的使用

iOS开发中的手势体系——UIGestureRecognizer分析及其子类的使用 一、引言 在iOS系统中,手势是进行用户交互的重要方式,通过UIGestureRecognizer类,我们可以轻松的创建出各种手势应用于app...

珲少
2015/11/06
4.4K
0
iOS 嵌套UIScrollview的滑动冲突另一种解决方案

这篇文章主要是看了卓同学的嵌套UIScrollview的滑动冲突解决方案之后,我想换一种方式来实现,其实基本思想是一样的。 先说说整体结构: 一个上面有一个和,上面有三个,基本就是微博个人主页...

军_andy
2017/05/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

还为PDF转Word抓狂?以下神器让你在职场倍受欢迎!

身在职场的你,是否一直在琢磨:如何能让自己在公司更受欢迎?如何才能在办公室里混个好人缘?如何在同事圈里留个好印象?其实,想要让自己成为受欢迎的人,只要让自己成为大家需要的人不就行...

foxit2world
22分钟前
7
0
AndServer+Service打造Android服务器实现so文件调用

so 文件调用 随着 Android 移动安全的高速发展,不管是为了执行效率还是程序的安全性等,关键代码下沉 native 层已成为基本操作。 native 层的开发就是通指的 JNI/NDK 开发,通过 JNI 可以实...

夜幕NightTeam
24分钟前
4
0
Docker下kafka学习三部曲之二:本地环境搭建

在上一章《 Docker下kafka学习,三部曲之一:极速体验kafka》中我们快速体验了kafka的消息分发和订阅功能,但是对环境搭建的印象仅仅是执行了几个命令和脚本,本章我们通过实战来学习如何编写...

程序员欣宸
24分钟前
4
0
萌新推荐!不再为Excel转换PDF发愁,Aspose.Cells for .NET一步到位!

Aspose.Cells for .NET(点击下载)是Excel电子表格编程API,可加快电子表格管理和处理任务,支持构建具有生成,修改,转换,呈现和打印电子表格功能的跨平台应用程序。 将Excel工作簿转换为...

mnrssj
25分钟前
6
0
对于绘画小白怎么画制服?该注意什么?

怎样制作学生服装?想必绘画初学者们常常会想的问题吧,不知道怎样才能画好人物的衣服,别着急,今日就在这儿讲一些关于如何绘画学生衣服校服的教程给我们!期望能够帮到你们! 轻便西装是不...

热爱画画的我
31分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部