给UICollectionViewCell绑定手势 long press举例

手势绑定功能是最常用的,但是没有经验的朋友,第一次用swift实现对UICollectionView集合中每个cell进行手势绑定,就有些茫然了。如果对swift手势和collectionview的实现还不是很清晰的话,请查看我这两篇swift版本手势功能简单讲以及教程:swift下使用collectionView+coreData原理+代码注释,剩下的就是我遇到的较痛苦的问题:如何给UICollectionViewCell绑定手势,就是给每个cell绑定手势!!

首先得实现代理

 代码如下 复制代码
class ViewController:
 UIViewController,
 UICollectionViewDelegateFlowLayout,
 UICollectionViewDataSource,
 UIGestureRecognizerDelegate    //手势的代理
{
 ......
}

给每个cell实现代码绑定手势

 代码如下 复制代码

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
    let cell = collectionView.dequeueReusableCellWithReuseIdentifier("newCell", forIndexPath: indexPath) as myCollectionViewCell
   
    cell.backgroundColor=UIColor.blackColor()
    var z: AnyObject! = dataArr[indexPath.row].valueForKey("zhangdanri")
    var h: AnyObject! = dataArr[indexPath.row].valueForKey("huankuanri")
    cell.textLabel?.text = "(z)~(h)"
    cell.textLabel1?.text=dataArr[indexPath.row].valueForKey("bank") as? String
    //这个tag是很有用的
    cell.tag = indexPath.row
    //最重要是下面这三行,记住是在这里绑定手势的,我刚开始一直不知道
    lp = UILongPressGestureRecognizer(target: self, action: Selector("longPress:"))
    lp.delegate = self
    cell.addGestureRecognizer(lp)
    return cell
}

实现long press的callback函数

 代码如下 复制代码

func longPress(recognizer: UILongPressGestureRecognizer){
 //这就是你当前选中的cell的数组下标
 var index = recognizer.view!.tag
    //代码部分
    if(recognizer.state == .Began)//很重要!!就是按0.5秒触发事件的开始
    {
     .....
    }
}

每个事件都是有状态的,状态也是一种过程:开始-》改变-》结束 ,如果上面的代码不进行开始判断,则长按0.5秒后你的实际代码会执行好几次!!!

Began
Changed
Ended
Cancelled
Failed

时间: 2024-10-28 00:08:31

给UICollectionViewCell绑定手势 long press举例的相关文章

IOS 七种手势操作(拖动、捏合、旋转、点按、长按、轻扫、自定义)详解及实例代码_IOS

IOS 七种手势操作 今天为大家介绍一下IOS 的七种手势,手势在开发中经常用到,所以就简单 通俗易懂的说下, 话不多说,直接看代码: 1.UIGestureRecognizer 介绍 手势识别在 iOS 中非常重要,他极大地提高了移动设备的使用便捷性. iOS 系统在 3.2 以后,他提供了一些常用的手势(UIGestureRecognizer 的子类),开发者可以直接使用他们进行手势操作. UIPanGestureRecognizer(拖动) UIPinchGestureRecognizer

IOS手势操作(拖动、捏合、旋转、点按、长按、轻扫、自定义)_IOS

下面通过图文并茂的方式给大家分享下IOS手势操作(拖动.捏合.旋转.点按.长按.轻扫.自定义)的相关内容. 1.UIGestureRecognizer 介绍 手势识别在 iOS 中非常重要,他极大地提高了移动设备的使用便捷性. iOS 系统在 3.2 以后,他提供了一些常用的手势(UIGestureRecognizer 的子类),开发者可以直接使用他们进行手势操作. UIPanGestureRecognizer(拖动) UIPinchGestureRecognizer(捏合) UIRotatio

Android实现通过手势控制图片大小缩放的方法_Android

本文实例讲述了Android实现通过手势控制图片大小缩放的方法.分享给大家供大家参考,具体如下: 该程序实现的是通过手势来缩放图片,从左向右挥动图片时图片被放大,从右向左挥动图片时图片被缩小,挥动速度越快,缩放比越大.程序思路如下:在界面中定义一个ImageView来显示图片,使用一个GestureDetector来检测用户的手势,并根据用户的手势在横向的速度来缩放图片. 在介绍这个实例前,先介绍一下Android中处理手势触摸事件的大概框架. 一.添加语句实现OnGestureListener

UIcollectionViewCell(UItableviewcell)长按删除操作

功能简单,陷阱不少: 主要涉及两个功能: 1.长按手势:UILongPressGestureRecognizer 2.cell自带的删除操作:deleteItemsAtIndexPaths 首先为cell添加长按手势: UILongPressGestureRecognizer* longgs=[[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(longpress:)]; [cell addGestur

Android实现通过手势控制图片大小缩放的方法

本文实例讲述了Android实现通过手势控制图片大小缩放的方法.分享给大家供大家参考,具体如下: 该程序实现的是通过手势来缩放图片,从左向右挥动图片时图片被放大,从右向左挥动图片时图片被缩小,挥动速度越快,缩放比越大.程序思路如下:在界面中定义一个ImageView来显示图片,使用一个GestureDetector来检测用户的手势,并根据用户的手势在横向的速度来缩放图片. 在介绍这个实例前,先介绍一下Android中处理手势触摸事件的大概框架. 一.添加语句实现OnGestureListener

ios-iOS 如何定义一个控件,显示一段文字,文字部分字有点击事件

问题描述 iOS 如何定义一个控件,显示一段文字,文字部分字有点击事件 最近做一个项目,有个页面要求显示一段文字,文字部分可点击,点击的部分文字的长度是不固定的,并且,不止一处需要点击,请教大神们,如何实现呢? 解决方案 用 UIWebView 加载一段 html 标记文本是最简单的, 里面用 的标签来定义一个超链接文本自己监听 webview 的回调就行了 解决方案二: http://bbs.csdn.net/topics/390834481 解决方案三: http://blog.csdn.n

初识docker—容器连接

连接容器 在使用 Docker 部分, 我们谈到了如何通过网络端口来访问运行在 Docker 容器内的服务.这是与docker容器内运行应用程序交互的一种方法.在本节中,我们打算通过端口连接到一个docker容器,并向您介绍容器连接概念. 网络端口映射 在使用docker部分,我们创建了一个python应用的容器. $ sudo docker run -d -P training/webapp python app.py 注:容器有一个内部网络和IP地址(在使用Docker部分我们使用docke

H5打造3d场景不完全攻略(二): Amazing CSS3D

前言 对的,本文就是着重介绍如何使用CSS3中的3D变换打造出H5中的3D效果.灵感来源于造物节团队的3d引擎,因为使用方法比较复杂,也没有开源的API文档,于是想自己另外造个轮子,便开始了相关内容的学习和实践.众所周知,目前市面上的H5 3D类库(如Three).引擎(Egret).构建工具(kpano.720云)都或存在体积太大.不开源.非免费.学习成本高等问题.对于我们较为熟悉的CSS3,为什么就不对它好好利用一把呢?诚然,CSS3存在我们比较清楚的短板,CSS对平面的渲染能力高,但是对3

android开发-同一个手机上,如何把手势密码设置信息和用户绑定?

问题描述 同一个手机上,如何把手势密码设置信息和用户绑定? 有的用户设置了手势密码,有的用户没有设置密码,不同用户切换时如何保存这个状态 解决方案 设一个变量设置为true 没设置为false分别处理就是了