cruffenach / CRToast

A modern iOS toast view that can fit your notification needs
MIT License
4.17k stars 463 forks source link

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

Open vamshikpadala opened 6 years ago

vamshikpadala commented 6 years ago

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.

mavris commented 6 years ago

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

vamshikpadala commented 6 years ago

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

chessboy commented 6 years ago

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!

Double-Dude commented 6 years ago

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

Ashton-W commented 6 years ago

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.

mavris commented 6 years ago

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

Double-Dude commented 6 years ago

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

Ashton-W commented 6 years ago

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

dmiedema commented 6 years ago

⚠️ 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