iOS-三種禁止點擊子視圖的時候不響應父視圖的點擊事件的方法

案例說明:點擊下圖子控件,會觸發(fā)父控件的點擊事件

WechatIMG25623.jpeg
解決方法1:
給子控件添加空事件、或者子控件實例為UIButton,添加空事件
解決方法2:事件攔截
 tap.delegate = self;

#pragma mark - UIGestureRecognizerDelegate
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{
    // self.contentView為子控件
    if ([touch.view isDescendantOfView:self.contentView]) {
        return NO;
    }
    return YES;
}
解決方法3:控制點擊區(qū)域 使用RAC手勢為例
    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]init];
    tap.delegate = self;
    [self addGestureRecognizer:tap];
    @weakify(self);
    [[tap rac_gestureSignal] subscribeNext:^(UITapGestureRecognizer *tap) {
        @strongify(self);
        if(CGRectContainsPoint(self.frame, [tap locationInView:self.contentView])) {
            // 相當于點擊了子控件
        } else{
            // 相當于點擊了父控件
        };
    }];
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

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

  • 好奇觸摸事件是如何從屏幕轉(zhuǎn)移到APP內(nèi)的?困惑于Cell怎么突然不能點擊了?糾結(jié)于如何實現(xiàn)這個奇葩響應需求?亦或是...
    Lotheve閱讀 57,874評論 51 603
  • 在iOS開發(fā)中經(jīng)常會涉及到觸摸事件。本想自己總結(jié)一下,但是遇到了這篇文章,感覺總結(jié)的已經(jīng)很到位,特此轉(zhuǎn)載。作者:L...
    WQ_UESTC閱讀 6,094評論 4 26
  • ??JavaScript 與 HTML 之間的交互是通過事件實現(xiàn)的。 ??事件,就是文檔或瀏覽器窗口中發(fā)生的一些特...
    霜天曉閱讀 3,526評論 1 11
  • 01 昨天莉莉跟我打電話說,看了你推薦的《我的前半生》,嚇得我把娃一丟,馬上上網(wǎng)找工作。 我被她逗樂了,說,你怕什...
    漫漫Chen閱讀 3,804評論 9 14
  • 昨晚又忘記提交文章一次!真的是直接沒想起來… 每一年雨季,都要經(jīng)歷差不多一個月的下雨,每天每天,連夜連夜,也難怪騰...
    胡蘿卜貓閱讀 217評論 1 0