如何精確響應(yīng)手勢(shì)識(shí)別位置

子視圖并不響應(yīng) tap 點(diǎn)擊觸摸手勢(shì) , 而是至于父視圖響應(yīng) tap 觸摸手勢(shì)的效果 , 精確定位觸摸的位置:

手勢(shì)觸摸位置識(shí)別

1.從代理方法能否開(kāi)始過(guò)濾手勢(shì)觸摸的位置:
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer;
2.從手勢(shì)能否進(jìn)入 Possible 狀態(tài)就開(kāi)始過(guò)濾手勢(shì)觸摸的位置:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch;

//
//  GestureConditionViewController.m
//  15-手勢(shì)實(shí)踐
//
//  Created by miaodong on 2017/6/19.
//  Copyright ? 2017年 miaodong. All rights reserved.
//

#import "GestureConditionViewController.h"

@interface GestureConditionViewController () <UIGestureRecognizerDelegate> {
    UIView *_superView;
    UIView *_subView;
    UITapGestureRecognizer *_tap;
}

@end

@implementation GestureConditionViewController
#pragma mark - life Cycle
- (void)viewDidLoad {
    [super viewDidLoad];
    
    self.view.backgroundColor = [UIColor whiteColor];
    self.edgesForExtendedLayout = UIRectEdgeNone;
    
    _superView = [[UIView alloc] initWithFrame:CGRectMake(50, 50, 200, 200)];
    _superView.backgroundColor = [UIColor lightGrayColor];
    [self.view addSubview:_superView];
    
    _subView = [[UIView alloc] initWithFrame:CGRectMake(20, 20, 100, 100)];
    _subView.backgroundColor = [UIColor orangeColor];
    [_superView addSubview:_subView];
    
    _tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tap:)];
    _tap.delegate = self;
    [_superView addGestureRecognizer:_tap];
    
}


#pragma mark - 手勢(shì)方法
- (void)tap:(UITapGestureRecognizer *)tapGesture {
    [self alertMessage:@"tap"];
}

- (void)alertMessage:(NSString *)message {
    UIAlertController *alertVC = [UIAlertController alertControllerWithTitle:@"AlertVC" message:message preferredStyle:UIAlertControllerStyleAlert];
    [alertVC addAction:[UIAlertAction actionWithTitle:@"確定" style: UIAlertActionStyleCancel handler:nil]];
    [self presentViewController:alertVC animated:YES completion:nil];
}

//方法一:
#pragma mark - <UIGestureRecognizerDelegate>
//讓父視圖響應(yīng)這個(gè) tap 手勢(shì),子視圖不響應(yīng)這個(gè)手勢(shì):
//- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer {
//    if (gestureRecognizer == _tap) {
//        CGPoint location = [gestureRecognizer locationInView:_superView];
//        //如果在第一個(gè)參數(shù)方塊里包含了第二個(gè)參數(shù)的點(diǎn)坐標(biāo):
//        if (CGRectContainsPoint(_subView.frame, location)) {
//            return NO;
//        }
//        return YES;
//    }
//    return YES;
//}


- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
    if (gestureRecognizer == _tap) {
        //如果觸摸位置所在的視圖不是父視圖 , 并且 觸摸位置所在的視圖是父視圖的子孫視圖:
//        if (touch.view != _superView && [touch.view isDescendantOfView:_superView]) {
//            //那么就不響應(yīng)手勢(shì):
//            return NO;
//        }
        
        //用下面這種判斷也是可以的~因?yàn)樽右晥D是添加到父視圖上的,觸摸點(diǎn)擊子視圖位置的時(shí)候是 摸不到 父視圖上的點(diǎn)的!
        if (!(touch.view == _superView)) {
            return NO;
        }
        return YES;
    }
    return YES;
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    
}

@end

愿編程讓這個(gè)世界更美好

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末描孟,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌僚饭,老刑警劉巖俗或,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件溶诞,死亡現(xiàn)場(chǎng)離奇詭異荞下,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)隐岛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門(mén)猫妙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人聚凹,你說(shuō)我怎么就攤上這事割坠。” “怎么了妒牙?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵彼哼,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我湘今,道長(zhǎng)敢朱,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任摩瞎,我火速辦了婚禮蔫饰,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘愉豺。我一直安慰自己,他們只是感情好茫因,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布蚪拦。 她就那樣靜靜地躺著,像睡著了一般冻押。 火紅的嫁衣襯著肌膚如雪驰贷。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,166評(píng)論 1 284
  • 那天洛巢,我揣著相機(jī)與錄音括袒,去河邊找鬼。 笑死稿茉,一個(gè)胖子當(dāng)著我的面吹牛锹锰,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播漓库,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼恃慧,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了渺蒿?” 一聲冷哼從身側(cè)響起痢士,我...
    開(kāi)封第一講書(shū)人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎茂装,沒(méi)想到半個(gè)月后怠蹂,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體善延,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年城侧,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了易遣。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡赞庶,死狀恐怖训挡,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情歧强,我是刑警寧澤澜薄,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站摊册,受9級(jí)特大地震影響肤京,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜茅特,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一忘分、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧白修,春花似錦妒峦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至祖很,卻和暖如春笛丙,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背假颇。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工胚鸯, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人笨鸡。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓姜钳,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親形耗。 傳聞我的和親對(duì)象是個(gè)殘疾皇子傲须,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容