网络小程序开发(小程序开发软件开发)
755
2022-09-02
[IOS]iphoneX简单适配
业务界面有tab bar,由于iPhone X的屏幕高是812,所有会导致tab bar与layout之间有空隙。只需要把tab bar向上移动并且把background设置成黑色,即可以在下面留一条黑边。
判断iPhone X:
#define KIsiPhoneX ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1125, 2436), [[UIScreen mainScreen] currentMode].size) : NO)
如果是iPhone X的话就,改变y点,把自己code的tab bar button向上画:
if (KIsiPhoneX) { bottom_tab_bar_view = [[UIView alloc] initWithFrame:CGRectMake(0, screenHeight - 83, screenWidth, 55)]; }else{ bottom_tab_bar_view = [[UIView alloc] initWithFrame:CGRectMake(0, screenHeight - 55, screenWidth, 55)]; }
由于本来我的自定义的tab bar 是覆盖系统原生的tab bar view的,向上画以后会显示出了原生tab bar view的图层,一般可以有两种方式处理:
1.把tab bar view的背景色改成黑色,使下面留一条黑边:
self.tabBar.barTintColor = [UIColor blackColor];// [[UITabBar appearance] setBarTintColor:[UIColor blackColor]];//第二种写法,选其一 [UITabBar appearance].translucent = NO;
2.隐藏了系统的tab bar view,显示controller的背景色(可设置成黑色):
[self.tabBar setHidden:YES];
但是这里有一个问题,ios的机制,所有的view拉满屏幕大小,其实在显示上是忽略navigation bar 和tab bar的,也就是说navigation bar 和tab bar 不会遮挡storyboard里面拉满页面大小的view。但是我在这里隐藏了tab bar,导致整个页面会向下移动,原本可以显示的部分却被我自定义的tab bar挡住了。这样的话,只能在每个被遮挡了的controller里面添加一个距离底部tab bar高度约束,使页面重新向上。
两种方法的显示效果基本一样,但是,由于第二种方法使整个页面向上,使基本可以保持原有UI,尤其是图片的缩放比的。第一种方法比较简单,但是由于iPhone X的屏幕比变大了,某些地方会出现拉伸图片的现象。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~