zoukankan      html  css  js  c++  java
  • iOS 之 手势

      手势操作,有一个总的抽象类UIGestureRecognizer,用于检测设备的所有手势。其下有多个子类:

    •   拍击UITapGestureRecognizer (任意次数的拍击) 
    •     向里或向外捏UIPinchGestureRecognizer (用于缩放)  
    •     摇动或者拖拽UIPanGestureRecognizer  
    •     擦碰UISwipeGestureRecognizer (以任意方向)  
    •     旋转UIRotationGestureRecognizer (手指朝相反方向移动)  
    •     长按UILongPressGestureRecognizer 

      里面有个规则,同一个视图的一种手势,只能注册一个,如果注册多个,则只有一个生效。但是子视图可以再注册同样的手势,子视图注册手势后,点击子视图后,父视图的手势将不再响应,点击子视图时,子视图自己的手势替换了父视图的同类的手势。但是,父视图的手势在其它未注册同类视图的地方还是生效的。

      上面的结论是有特殊情况的,TableView等事件是没有替换之说的

      通过下面的delegate来判断是否需要往下传递。如果返回YES,就往下传递。

       

    - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
    {
        // 若为UITableViewCellContentView(即点击了tableViewCell),则不截获Touch事件
        // 但是这个地方,我觉得没有任何影响,可以去掉
        if ([NSStringFromClass([touch.view class]) isEqualToString:@"UITableViewCellContentView"]) {
            return NO;
        }
        return  YES;
    }

      这是手势delegate里面注册的事件

  • 相关阅读:
    正则函数及面向对象开发初识---day19
    正则计算器---day19
    正则表达式re模块---day18
    批量下载英雄联盟官网皮肤及打包
    zip压缩模块,tarfile压缩模块,包和模块,format格式化的复习--day17
    计算一个文件夹里面所有文件的大小---day17
    time模块,os操作系统及os模块和shutil模块用法---day16
    http请求方法
    cube.js
    http响应码
  • 原文地址:https://www.cnblogs.com/SimonGao/p/5144222.html
Copyright © 2011-2022 走看看