ios-day17-05(手势识别器(UIGestureRecognizer)之敲击——UITapGestureRecognizer)

本文介绍了一个简单的iOS应用案例,展示了如何使用手势识别器实现图片点击功能。通过设置手势识别器的参数并添加到图片视图上,实现了对用户点击图片的操作响应,并通过MBProgressHUD显示反馈信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

源码下载地址:http://download.youkuaiyun.com/detail/liu537192/8549765


效果图:





图1:


核心代码:

//
//  JLViewController.m
//  05-敲击
//
//  Created by XinYou on 15-3-31.
//  Copyright (c) 2015年 vxinyou. All rights reserved.
//

#import "JLViewController.h"
#import "MBProgressHUD+MJ.h"

@interface JLViewController ()
   
    
@property (weak, nonatomic) IBOutlet UIImageView *iconView;

@end

@implementation JLViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    // 默认情况下图片是不能跟用户进行交互的,也就是默认情况下userInteractionEnabled = NO;
    // 如图1所示,也可以在storyboard中设置这个属性。
    self.iconView.userInteractionEnabled = YES;
    
    // 1,创建手势识别器
    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] init];
    
    // 设置敲击的次数为2,也就是说需要连续敲击两次才能识别手势。
//    tap.numberOfTapsRequired = 2;
    
    // 设置接触点的个数为2,也就是说需要两根手指触摸才能识别手势。
//    tap.numberOfTouchesRequired = 2;
    // 默认情况下是不支持多点触控的,勾选图1中所示的 Multiple Touch即可,或者用代码设置:
    // self.iconView.multipleTouchEnabled = YES;
    
    // 2,添加手势识别器到对应的view
    [self.iconView addGestureRecognizer:tap];
    
    // 3,添加监听方法
    [tap addTarget:self action:@selector(tapIconView)];
    
    // 设置代理
    tap.delegate = self;
}

- (void)tapIconView{

    [MBProgressHUD showSuccess:@"图片被点击了"];
}

#pragma mark -代理方法
/**
 *  当敲击了view时,会先调用这个方法,如果返回YES表示本次敲击有效,返回NO表示本次敲击无效(忽略本次敲击)
 */
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{

    CGPoint point = [touch locationInView:touch.view];
    
    // 只有敲击图片的左边才有效
    if (point.x <= self.iconView.frame.size.width * 0.5) {
        
        return YES;
    }
    
    return NO;
}

@end

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值