Skip to content

Commit ea81328

Browse files
authored
Merge pull request didi#31 from codingiran/master
UI元素辅助线功能遗漏对UIStatusBarWindow判断的修复
2 parents c6d91bb + 4cc44d6 commit ea81328

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

iOS/DoraemonKit/Src/Core/Plugin/ViewMetrics/Function/DoraemonViewMetricsConfig.m

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,16 @@ - (void)setEnable:(BOOL)enable
4545
[window hideDoraemonMetricsRecursive];
4646
}
4747
}
48+
49+
// 每当状态栏发生变化(如: 时间跳动,4G切WIFI,横竖屏切换等),状态栏会走`layoutSubviews`方法,会导致状态栏也出现元素边框;而[UIApplication sharedApplication].windows数组内拿不到UIStatusBarWindow,关闭元素边框无法及时隐藏状态栏的边框线
50+
// 也可以在`UIView+DoraemonViewMetrics.h`内的`shouldShowMetricsView`中直接禁掉状态栏的元素边框
51+
NSString *statusBarString = [NSString stringWithFormat:@"_statusBarWindow"];
52+
UIWindow *statusBarWindow = [[UIApplication sharedApplication] valueForKey:statusBarString];
53+
if (statusBarWindow) {
54+
if (!enable) {
55+
[statusBarWindow hideDoraemonMetricsRecursive];
56+
}
57+
}
4858
}
4959

5060
@end

iOS/DoraemonKit/Src/Core/Plugin/ViewMetrics/Function/UIView+DoraemonViewMetrics.m

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,13 @@ - (BOOL)shouldShowMetricsView
3232
return NO;
3333
}
3434

35+
// 状态栏不需要显示元素边框
36+
NSString *statusBarString = [NSString stringWithFormat:@"_statusBarWindow"];
37+
UIWindow *statusBarWindow = [[UIApplication sharedApplication] valueForKey:statusBarString];
38+
if (statusBarWindow && [self isDescendantOfView:statusBarWindow]) {
39+
return NO;
40+
}
41+
3542
if ([self isInBlackList]) {
3643
return NO;
3744
}

0 commit comments

Comments
 (0)