From f92b161eb3fc542846f0d9b5a33d2d06f37f3ca4 Mon Sep 17 00:00:00 2001 From: Valentin Shergin Date: Thu, 23 Jan 2020 12:51:59 -0800 Subject: [PATCH] SafeAreaView: Custom `description` method extended with inset values Summary: That should help with debugging SafeAreaView-related issues (esp. to see the info inside view hierarchy recursive description). Changelog: [Internal] Reviewed By: JoshuaGross Differential Revision: D19539216 fbshipit-source-id: 1bee481c2766ad2d130e435582876d9f5ed27b3c --- React/Views/SafeAreaView/RCTSafeAreaView.m | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/React/Views/SafeAreaView/RCTSafeAreaView.m b/React/Views/SafeAreaView/RCTSafeAreaView.m index 9e1e5dbf778..34d3f7ac5a1 100644 --- a/React/Views/SafeAreaView/RCTSafeAreaView.m +++ b/React/Views/SafeAreaView/RCTSafeAreaView.m @@ -30,6 +30,21 @@ RCT_NOT_IMPLEMENTED(- (instancetype)initWithCoder:(NSCoder *)decoder) RCT_NOT_IMPLEMENTED(- (instancetype)initWithFrame:(CGRect)frame) +- (NSString *)description +{ + NSString *superDescription = [super description]; + + // Cutting the last `>` character. + if (superDescription.length > 0 && [superDescription characterAtIndex:superDescription.length - 1] == '>') { + superDescription = [superDescription substringToIndex:superDescription.length - 1]; + } + + return [NSString stringWithFormat:@"%@; safeAreaInsets = %@; appliedSafeAreaInsets = %@>", + superDescription, + NSStringFromUIEdgeInsets([self safeAreaInsetsIfSupportedAndEnabled]), + NSStringFromUIEdgeInsets(_currentSafeAreaInsets)]; +} + - (BOOL)isSupportedByOS { return [self respondsToSelector:@selector(safeAreaInsets)];