• 在一个view上添加了一个UIScrollView,然后在UIScrollerView上添加了一个UIImageView,希望点击这个imageView有反应,于是在UIImageView上添加了UITapGestureRecognizer,但是怎么点都没有反应,仔细查看并不是...
     在一个view上添加了一个UIScrollView,然后在UIScrollerView上添加了一个UIImageView,希望点击这个imageView有反应,于是在UIImageView上添加了UITapGestureRecognizer,但是怎么点都没有反应,仔细查看并不是UITapGestureRecognizer代码写得不对,折腾了一会,终于发现问题了,子类view如果添加了手势,那么不仅它的userInteractionEnabled要打开,它父类的userInteractionEnabed也要设为YES才行,我的问题就出在最开始的view的交互性是关闭的。
    
    展开全文
  • iOS_手势添加及使用

    2018-01-18 16:42:31
    代码以imageview为例,给imageview添加点击事件: //图片这种类型的view默认是没有点击事件的,所以要把用户交互的属性打开 _imageView.userInteractionEnabled = YES; ... UITapGestureRecognizer *click = [[UITap

    代码以imageview为例,给imageview添加点击事件:

            //图片这种类型的view默认是没有点击事件的,所以要把用户交互的属性打开
            _imageView.userInteractionEnabled = YES;
            
            //添加点击手势
            UITapGestureRecognizer *click = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(clickAction)];
            
            //点击几次后触发事件响应,默认为:1
            click.numberOfTapsRequired = 2;
            //需要几个手指点击时触发事件,默认:1
            click.numberOfTouchesRequired = 1;
            
            [_imageView addGestureRecognizer:click];


    如果需要的话,还可以添加一下几个手势


        //创建一个平移的手势
        UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panGes:imageView:)];
        [imageView addGestureRecognizer:pan];
        
        //创建一个滑动手势
        UISwipeGestureRecognizer *swipe = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeAction)];
        swipe.direction = UISwipeGestureRecognizerDirectionLeft;  //左滑手势,同样还有上、下、右的手势


    展开全文
  • 通过添加边缘手势来实现侧滑的效果,类似于qq界面的边缘侧滑 ,亦或广告界面的侧滑@interface中定义一个全局view@property(nonatomic,weak)UIView *adView;添加侧滑手势// 添加边缘手势 ...

    通过添加边缘手势来实现侧滑的效果,类似于qq界面的边缘侧滑 ,亦或广告界面的侧滑

    @interface中定义一个全局view

    @property(nonatomic,weak)UIView *adView;

    添加侧滑手势

    // 添加边缘手势
        UIScreenEdgePanGestureRecognizer *ges = [[UIScreenEdgePanGestureRecognizer alloc] initWithTarget:self action:@selector(showAd:)];
        // 指定左边缘滑动
        ges.edges = UIRectEdgeLeft;
        [self.view addGestureRecognizer:ges];
        // 如果ges的手势与collectionView手势都识别的话,指定以下代码,代表是识别传入的手势
        [self.collectionView.panGestureRecognizer requireGestureRecognizerToFail:ges];

    实现滑出方法

    - (void)showAd:(UIScreenEdgePanGestureRecognizer *)ges {
        // 让view跟着手指去移动
        // frame的x应该为多少??应该获取到手指的x值
        // 取到手势在当前控制器视图中识别的位置
        CGPoint p = [ges locationInView:self.view];
        NSLog(@"%@", NSStringFromCGPoint(p));
        CGRect frame = self.adView.frame;
        // 更改adView的x值. 手指的位置 - 屏幕宽度
        frame.origin.x = p.x - [UIScreen mainScreen].bounds.size.width;
        // 重新设置上去
        self.adView.frame = frame;
    
        if (ges.state == UIGestureRecognizerStateEnded || ges.state == UIGestureRecognizerStateCancelled) {
            // 判断当前广告视图在屏幕上显示是否超过一半
            if (CGRectContainsPoint(self.view.frame, self.adView.center)) {
                // 如果超过,那么完全展示出来
                frame.origin.x = 0;
            }else{
                // 如果没有,隐藏
                frame.origin.x = -[UIScreen mainScreen].bounds.size.width;
            }
            [UIView animateWithDuration:0.25 animations:^{
                self.adView.frame = frame;
            }];
        }   
    }
    /**
     *  添加滑出的view
     */
    - (void)setupAdView {
        UIView *view = [[UIView alloc] initWithFrame:[UIScreen mainScreen].bounds];
        // 设置背景颜色
        view.backgroundColor = [UIColor randomColor];
        CGRect frame = view.frame;
        // 将x值改成负的屏幕宽度,原因是因为默认就在屏幕的左边
        frame.origin.x = -view.frame.size.width;
        // 设置给view
        view.frame = frame;
        // 因为该view是盖在所有的view身上,所以应该添加到window上
        [[UIApplication sharedApplication].keyWindow addSubview:view];
        self.adView = view;
    
        // 添加轻扫手势  -- 滑回
        UISwipeGestureRecognizer *ges = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(closeAd)];
        ges.direction = UISwipeGestureRecognizerDirectionLeft;
        [self.adView addGestureRecognizer:ges];
    }

    这是回滑的方法

    - (void)closeAd {
        [UIView animateWithDuration:0.25 animations:^{
            CGRect frame = self.adView.frame;
            frame.origin.x = -[UIScreen mainScreen].bounds.size.width;
            self.adView.frame = frame;
        }];
    }
    展开全文
  • IOS view添加点击的手势,view中有个button,怎么设置点击button不触发view的手势
  • iOS 开发 取消系统侧滑手势 监听当前页面的侧滑返回操作

    最近做iOS项目,我的 viewController 里面有的方法和侧滑手势冲突,也就是侧滑返回的时候我需要在当前viewController 进行操作,而又不能在 viewWillDisappear 里面操作,那就监听侧滑手势,触发侧滑手势的时候进入 UIGestureRecognizerDelegate方法进行操作:

    代码示例如下: 添加 UIGestureRecognizerDelegate代理

    - (void)viewDidAppear:(BOOL)animated{

        [super viewDidAppear:animated];

        // 视图完成显示添加手势代理

        if ([self.navigationControllerrespondsToSelector:@selector(interactivePopGestureRecognizer)]) {

    //         self.navigationController.interactivePopGestureRecognizer.enabled = NO;  // 关闭侧滑返回手势

             self.navigationController.interactivePopGestureRecognizer.delegate = self;

        }

        


    }


    - (void)viewWillDisappear:(BOOL)animated{

        [super viewWillDisappear:animated];

        // 视图将要显示取消手势代理

        if ([self.navigationControllerrespondsToSelector:@selector(interactivePopGestureRecognizer)]) {

    //        self.navigationController.interactivePopGestureRecognizer.enabled = YES;  // 开启侧滑返回手势

            self.navigationController.interactivePopGestureRecognizer.delegate = nil;

        }

        

    }

    // 手势代理方法

    - (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer

    {

        // 判断此手势是侧滑返回手势

        if (gestureRecognizer ==self.navigationController.interactivePopGestureRecognizer) {

            

    // 在本方法里进行侧滑返回时需要的操作

            // return YES 有侧滑返回手势,return NO 无侧滑返回手势

            return YES;

        }

        

        return YES;

    }


    本方法适用于开启侧滑返回的项目,具体是关闭侧滑返回,还是监听侧滑返回手势,可根据项目实际需求和对代码的理解灵活操作。


    viewWillDisappear 
    展开全文
  • IOS开发中,给webView添加一个轻扫手势,就可以返回一个网页. 代码 #import "CKCenterMenuVC.h" @interface CKCenterMenuVC () @property(nonatomic,strong) NSURL *url; @...

    在IOS开发中,给webView添加一个轻扫手势,就可以返回上一个网页.

    上代码

    #import "CKCenterMenuVC.h"


    @interface CKCenterMenuVC ()


    @property(nonatomic,strong) NSURL *url;


    @property(nonatomic,strong) UIWebView *web;


    @end


    @implementation CKCenterMenuVC


    - (void)viewDidLoad {

        

        [super viewDidLoad];

        //登录状态

        if ([Context logined]) {

            

            [self loadWebView];

        };

        

        self.title = @"社区";

        

        //创建webView

        UIWebView *web = [[UIWebView alloc] initWithFrame:self.view.bounds];

        

        web.scalesPageToFit = YES;

        

        web.height = kIphoneHeight - 108;

        

        //添加一个轻扫手势

        UISwipeGestureRecognizer *swip = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(back)] ;

        

        [web addGestureRecognizer:swip];

        

        self.web = web;

        

        [self.view addSubview:web];

        

    }

    /**

     *  返回上一个网页

     */

    - (void)back

    {

        [self.web goBack];

        

    }

    /**

     *  加载一个网页

     */

    - (void)loadWebView{

        

        //当前登录用户

        MDUser *user = [Context sharedInstance].modianUser;

        

        NSDictionary *parameters = @{@"user_id":user.userId};

        

        //请求数据

        [HttpTool postWithPath:@"/v20/main/moxi_index" params:parameters success:^(id json) {

            

            MyLog(@"%@",json);

            

            if ([json[@"status"] intValue] == 0) {

                

                NSDictionary *urlDict = json[@"data"];

                

                NSString *urlStr= urlDict[@"url"];

                

                self.url = [NSURL URLWithString:urlStr];

                

                NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:self.url];

                

                [self.web loadRequest:request];

                

            }

            

        } failure:^(NSError *error) {

            

            MyLog(@"%@",error);

        }];

        

    }


    @end



    展开全文
  • iOS手势的传递问题

    2019-09-29 05:35:29
    昨天在做一个页面的时候,我先在一个uiview上面画了一个字母的索引表,之后我通过touchbegan来...效果可以实现,当我内嵌到app里的时候出现了问题,因为我在页面上增加了滑动手势效果,主要是做一个屏幕的切换,因此...
  • IOS开发——根据手势获取添加这个手势的View  //添加长按手势  UILongPressGestureRecognizer *titleLPGR = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector...
  • 有时候我们在指定页面不需要右滑动手势返回页面,那么在指定页面添加一下代码,就能实现该功能 (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:YES]; // 禁用iOS7返回手势 self....
  • 1、添加手势 //为滚动条中的图片添加手势  UITapGestureRecognizer *imgTap=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(toADDeatil:)];  imgTap.delegate=self;  //打开...
  • ios 全屏返回手势

    2019-10-24 17:01:14
    苹果在IOS7以后给导航控制器增加了一个Pop的手势,只要手指在屏幕边缘滑动,当前的控制器的视图就会跟随你的手指移动,当用户松手后,系统会判断手指拖动出来的大小来决定是否要执行控制器的Pop操作。 这个操作的...
  • 首先iOS7以后系统默认自带了侧滑功能,当用户在界面的左边滑动的时候,就会有侧滑功能。 但是如果我们从从导航控制器的返回按钮,就发现系统所带的侧滑返回功能无法使用,而且有些功能不尽人意,所以有以下自定义...
  • 为 UIScrollView 添加手势事件,通过屏幕宽度与 UIScrollView 的偏移量 contentOffset 的方式获取对应的当前滚动页面点击事件,具体 code 如下: 首先,创建 UIScrollView 实现简易的基础控件并绑定手势事件进行监听...
  • iOS7 之后,Apple 增加了屏幕边缘右划返回交互的支持,再配合 UINavigationController 的交互式动画,pop 到一级页面的操作变的非常顺畅和丝滑,从此,我很少再使用点击左上角导航栏的返回按钮的方式返回
  • ios7以后,苹果推出了手势滑动返回功能,也就是从屏幕左侧向右滑动可依返回一个界面。这项功能在大多数情况下方便了用户的使用,但是有时候,我们并不需要手势返回功能,比如某个页面加入了左右滑动翻页功能,...
  • ios 左右滑动手势

    2015-02-20 23:20:09
    这是一个很简单的实例,向做滑动...1. 在ViewController中添加两个属性 @property (nonatomic, strong) UISwipeGestureRecognizer *leftSwipeGestureRecognizer; @property (nonatomic, strong) UISwipeGestureRecogn
  • 最近项目中需求A页面需要禁用系统右滑返回手势,然手到下一级页面需要使用系统右滑返回手势,再回到A页面时还禁用系统右滑返回手势 话不多说直接代码 A页面: -(void)viewDidAppear:(BOOL)animated { [super ...
  • iOS开发交流群:301058503 不知道各位在做开发的时候,是否有在同一个页面里既有单击的手势,又有tableView的存在的情况,如果有的话,你可能会发现,你的tableView点击出问题了,打印一下,你会发现,你单击...
  • ios移除手势

    2015-09-29 10:17:24
    [self.view removeGestureRecognizer:backPanRecognizer];
  • iOS开发 iOS 7的手势滑动返回功能 iOS7之后使用默认模板创建的iOS App都支持手势返回功能,如果导航栏的返回按钮是自定义的那么则会失效,也可以参考这里手动设置无效。 [cpp] view plaincopy ...
1 2 3 4 5 ... 20
收藏数 9,808
精华内容 3,923
关键字:

页面上添加手势没效果ios