view中巧用響應鏈

// - 方案一

-(BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event{

    if (CGRectContainsPoint(self.subView.frame, point)) {
        self.scrollEnabled = NO;
        return YES;
    }
    self.scrollEnabled = YES;
    return YES;
}


// - 方案二

-(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event{
    if (CGRectContainsPoint(self.subView.frame, point)) {
        self.scrollEnabled = NO;
        return [super hitTest:point withEvent:event];
    }
    self.scrollEnabled = YES;
    return [super hitTest:point withEvent:event];
}



// - 設置 scrollview 做的選項卡的 view 在第一個選項上是可以左滑返回

-(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event{

    if ([[super hitTest:point withEvent:event] isKindOfClass:[UIControl class]]

        ) {

        return [super hitTest:point withEvent:event];

    }else{

        if ((self.contentOffset.x == 0) && (point.x < 30)) {

            return nil;

        }

         return [super hitTest:point withEvent:event];

    }

}

// - 設置事件可以穿透 view

@implementation DYContainerBgView

/** 可以透過事件 */

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event{

    if ([super hitTest:point withEvent:event] == self) return nil;

    return [super hitTest:point withEvent:event];

}

@end
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章