Skip to content

Commit

Permalink
Exclude KIFEventVisualizer from printing heirarchy
Browse files Browse the repository at this point in the history
  • Loading branch information
dostrander committed Sep 21, 2020
1 parent b6b668e commit 22693e0
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 3 deletions.
6 changes: 6 additions & 0 deletions Additions/UIView-Debugging.m
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
//

#import "UIView-Debugging.h"
#import "KIFEventVisualizer.h"

@implementation UIView (Debugging)

Expand All @@ -16,6 +17,11 @@ +(void)printViewHierarchy {
} else {
//more than one window, also print some information about each window
for (UIWindow* window in windows) {
// ignore the event visualizer window
// We don't want to create the visualizer by calling `sharedVisualizer` so check to see if it's there first.
if([KIFEventVisualizer isVisualizerCreated] && [KIFEventVisualizer sharedVisualizer].window == window) {
continue;
}
printf("Window level %f", window.windowLevel);
if(window.isKeyWindow) printf(" (key window)");
printf("\n");
Expand Down
2 changes: 2 additions & 0 deletions Visualizer/KIFEventVisualizer.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@

@interface KIFEventVisualizer : NSObject

+ (BOOL)isVisualizerCreated;
+ (nonnull instancetype)sharedVisualizer;

@property (strong, nonatomic, readonly, nonnull) UIWindow *window;
- (void)visualizeEvent:(nonnull UIEvent *)event;

// Unavailable.
Expand Down
24 changes: 21 additions & 3 deletions Visualizer/KIFEventVisualizer.m
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,40 @@
#import "KIFEventVisualizer.h"
#import "KIFTouchVisualizerViewCoordinator.h"

static BOOL __isKIFVisualizerCreated = NO;

@interface KIFEventVisualizerWindow : UIWindow
@end

@implementation KIFEventVisualizerWindow

- (UIWindowLevel)windowLevel
{
return 100000099;
}

@end

@interface KIFEventVisualizer()

@property (strong, nonatomic, readonly) KIFTouchVisualizerViewCoordinator *coordinator;
@property (strong, nonatomic, readonly) UIWindow *window;

@end

@implementation KIFEventVisualizer

+ (BOOL)isVisualizerCreated
{
return __isKIFVisualizerCreated;
}

+ (instancetype)sharedVisualizer
{
static dispatch_once_t onceToken;
static KIFEventVisualizer *sharedVisualizer = nil;
dispatch_once(&onceToken, ^{
sharedVisualizer = [[KIFEventVisualizer alloc] initPrivate];
__isKIFVisualizerCreated = YES;
});

return sharedVisualizer;
Expand All @@ -29,9 +48,8 @@ - (instancetype)initPrivate
{
self = [super init];

_window = [[UIWindow alloc] init];
_window = [[KIFEventVisualizerWindow alloc] init];
_window.userInteractionEnabled = NO;
_window.windowLevel = UIWindowLevelAlert + 1;
_window.hidden = NO;
_window.backgroundColor = UIColor.clearColor;
_coordinator = [[KIFTouchVisualizerViewCoordinator alloc] initWithView:_window];
Expand Down

0 comments on commit 22693e0

Please sign in to comment.