CRToast icon indicating copy to clipboard operation
CRToast copied to clipboard

Status bar text ( center aligned) doesn't show up in iPhone X

Open vamshikpadala opened this issue 7 years ago • 9 comments

Hi Guys, i've encountered an issue with the CRToastTypeStatusBar. The texts which are aligned center in the status bar presenter are not showing up in iPhone X. I am attaching the screenshot as well. Could you please let me know if there is any alternative for this behavior or are you guys updating the library any where soon? simulator screen shot - iphone x - 2017-09-22 at 09 41 23

Above red marked area is where i have my text. I really appreciate your work with CRToast. Thanks.

vamshikpadala avatar Oct 03 '17 15:10 vamshikpadala

Came exactly for the same issue. Is there any chance to show the notification under the navigation bar?

mavris avatar Oct 03 '17 16:10 mavris

Hey mavris, as far as i know, you can show it as a navigationBar. But under the navigation bar, i am not sure.

vamshikpadala avatar Oct 03 '17 16:10 vamshikpadala

It seems the library needs to be updated to take into account the new "Safe Area" released in iOS 11. Not sure how that would work on an iPhone X running iOS 10 (if that's even possible). Love CRToast – please make this happen!

chessboy avatar Oct 04 '17 04:10 chessboy

Same to me, part of the Title text got covered by the motion detector area(top centre). Stupid iPhone X design.

Double-Dude avatar Oct 04 '17 04:10 Double-Dude

My recommendation would to be stop using the status bar for toasts. You could detect the device and change to navigation bar toasts - or move to navigation bar toasts entirely.

Ashton-W avatar Oct 04 '17 07:10 Ashton-W

Can you move the toast to a custom location? If yes, how? Documentation is terrible

mavris avatar Oct 04 '17 07:10 mavris

@Ashton-W Even I change to navigation bar toasts, part of the text still got covered by the area.

Double-Dude avatar Oct 04 '17 22:10 Double-Dude

Try not using over status bar too, we would need to add code to be aware of safe area to fix it otherwise

Ashton-W avatar Oct 05 '17 01:10 Ashton-W

⚠️ Warning ⚠️: This is not well tested

You can apply a really dirty hack to shift the text down only on the iPhone X.

In CRToast.m -layoutSubviews add a check to see if the status bar frame is taller than 20. Again, this is hardly tested so it may totally fall over in some circumstances but it at least works in the demo app

If someone has the time to properly test this a build out a better solution please do - I unfortunately do not have the time but just found this kind of worked or at least was a starting point.

Screen Shot & git diff here

diff --git a/CRToast/CRToastView.m b/CRToast/CRToastView.m
index 8a9518d..ce2d2c4 100644
--- a/CRToast/CRToastView.m
+++ b/CRToast/CRToastView.m
@@ -132,6 +132,9 @@ static CGFloat CRCenterXForActivityIndicatorWithAlignment(CRToastAccessoryViewAl
     CGFloat preferredPadding = self.toast.preferredPadding;
     
     CGFloat statusBarYOffset = self.toast.displayUnderStatusBar ? (CRGetStatusBarHeight()+CRStatusBarViewUnderStatusBarYOffsetAdjustment) : 0;
+    if (CRGetStatusBarHeight() > 20) {
+        statusBarYOffset += 24;
+    }
     contentFrame.size.height = CGRectGetHeight(contentFrame) - statusBarYOffset;

screen shot 2017-10-05 at 9 02 28 am

dmiedema avatar Oct 05 '17 16:10 dmiedema