iOS: when not set onclick on view, should passthrough touch event

This commit is contained in:
pengfei.zhou 2022-12-07 10:17:31 +08:00 committed by osborn
parent f175a94b28
commit 875f3a5066
7 changed files with 36 additions and 4 deletions

View File

@ -21,8 +21,9 @@
#import "DoricFlexNode.h" #import "DoricFlexNode.h"
#import "DoricExtensions.h" #import "DoricExtensions.h"
#import <YogaKit/UIView+Yoga.h> #import <YogaKit/UIView+Yoga.h>
#import "DoricUIView.h"
@interface DoricFlexView : UIView @interface DoricFlexView : DoricUIView
@end @end
@implementation DoricFlexView @implementation DoricFlexView

View File

@ -22,10 +22,11 @@
#import "DoricHLayoutNode.h" #import "DoricHLayoutNode.h"
#import "DoricExtensions.h" #import "DoricExtensions.h"
#import "DoricUIView.h"
@implementation DoricHLayoutNode @implementation DoricHLayoutNode
- (UIView *)build { - (UIView *)build {
return [[UIView new] also:^(UIView *it) { return [[DoricUIView new] also:^(DoricUIView *it) {
it.doricLayout.layoutType = DoricHLayout; it.doricLayout.layoutType = DoricHLayout;
}]; }];
} }

View File

@ -22,11 +22,12 @@
#import "DoricStackNode.h" #import "DoricStackNode.h"
#import "DoricExtensions.h" #import "DoricExtensions.h"
#import "DoricUIView.h"
@implementation DoricStackNode @implementation DoricStackNode
- (UIView *)build { - (UIView *)build {
return [[UIView new] also:^(UIView *it) { return [[DoricUIView new] also:^(DoricUIView *it) {
it.doricLayout.layoutType = DoricStack; it.doricLayout.layoutType = DoricStack;
}]; }];
} }

View File

@ -0,0 +1,9 @@
//
// Created by pengfei.zhou on 2022/12/6.
//
#import <Foundation/Foundation.h>
@interface DoricUIView : UIView
@end

View File

@ -0,0 +1,18 @@
//
// Created by pengfei.zhou on 2022/12/6.
//
#import "DoricUIView.h"
@implementation DoricUIView
- (nullable UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
UIView *target = [super hitTest:point withEvent:event];
if (self.gestureRecognizers.count == 0 && target == self) {
return nil;
} else {
return target;
}
}
@end

View File

@ -22,11 +22,12 @@
#import "DoricVLayoutNode.h" #import "DoricVLayoutNode.h"
#import "DoricExtensions.h" #import "DoricExtensions.h"
#import "DoricUIView.h"
@implementation DoricVLayoutNode @implementation DoricVLayoutNode
- (UIView *)build { - (UIView *)build {
return [[UIView new] also:^(UIView *it) { return [[DoricUIView new] also:^(DoricUIView *it) {
it.doricLayout.layoutType = DoricVLayout; it.doricLayout.layoutType = DoricVLayout;
}]; }];
} }

View File

@ -30,6 +30,7 @@
#import "DoricPromise.h" #import "DoricPromise.h"
#import "DoricFlexNode.h" #import "DoricFlexNode.h"
#import "DoricErrorHintNode.h" #import "DoricErrorHintNode.h"
#import "DoricUIView.h"
@interface AnimationCallback : NSObject <CAAnimationDelegate> @interface AnimationCallback : NSObject <CAAnimationDelegate>
@property(nonatomic, strong) NSMutableDictionary *dictionary; @property(nonatomic, strong) NSMutableDictionary *dictionary;