但是如果有状态是有透明或者半透明的效果,上面这个方法还是不能胜任,越透明越明显;经过一番查找,终于发现问题: 问题: 1、iOS 13之前,可以通过valueForKey 获取UIApplication...的statusBar,因为UIApplication是单例,因此,在iOS 12,通过: [[[UIApplication sharedApplication] valueForKey:@"statusBarWindow...2、iOS 13之后,因为苹果不允许使用KVC的valueForKey访问私有属性。...因此这个方法多次调用就会创建多份statusBar,造成内存开销不说,想设置状态栏为为透明,根本没效果。 解决办法:既然定位到问题所在,办法就是保证iOS 13 之后,每次也都能拿到有去只有一个对象。...NSLog(@"状态栏高度:%f",statusHeight); //获取导航栏的高度 CGFloat navHeight = self.navigationController.navigationBar.frame.size.height
标题设置 self.navigationItem.title = @"标题"; 复制代码 正常情况下,控制器的标题会默认作为导航标题 前景色 self.navigationController.navigationBar.barTintColor...= [UIColor blueColor]; 复制代码 背景色 //注意上层有毛玻璃遮挡 self.navigationController.navigationBar.backgroundColor...imageNamed:@"Background"] forBarMetrics:UIBarMetricsDefault]; 复制代码 状态栏字体颜色和隐藏 在iOS7之前 [[UIApplication...,便于识别底部线条有没有被隐藏 [navigationBar setBackgroundImage:[[UIImage alloc] init] forBarPosition:UIBarPositionAny...navigationBar.hidden没有系统自动的动画效果。
问题 最近接手一个老项目,发现每次push一个新VC,导航栏状态栏都默认为黑色,并且在滚动的过程中渐变成白色,到处搜索都没定位到哪里配置了backgroundColor = blackColor 解决方案...其实是iOS13后苹果更新UINavigationBar属性参数配置问题引起,配置以下方法解决: if (@available(iOS 13.0, *)) { UINavigationBarAppearance...UINavigationBarAppearance new]; [appearance configureWithOpaqueBackground];//重置导航栏背景颜色和阴影 appearance.backgroundColor...appearance.shadowImage = [UIImage new]; // appearance.shadowColor = nil; self.navigationController.navigationBar.standardAppearance...= appearance; self.navigationController.navigationBar.scrollEdgeAppearance = appearance;
UINavigationBar *navigationBar = [[UINavigationBar alloc] initWithFrame:CGRectZero]; navigationBar.backgroundColor...自定义导航栏后发现SafeArea没有变化,这样设置contentview的时候会将navigationbar遮挡。...; 设置该值后也要相应调整下导航栏的布局,之前是在SafeArea之内,现在要改为之外。...4、横屏交互适配 主要涉及到视频播放的边缘交互按钮。 内容 内容只需放置在SafeArea之内。同样底部如果没有固定可交互组件也要延伸到屏幕底部。...需要控制从状态栏下拉或者底部栏上滑,这个会跟系统的下拉通知中心手势和上滑控制中心手势冲突。
想必都看过WWDC2021的Session了,Session原版视频依然是最有效的get新特性的渠道,iOS15多的特性就不说了,我就整理了我在适配iOS15路上的一些更改和调整。...适配以iOS15 beta6和xcode13 beta5为环境基础 UINavigationBar 用新xcode13编译工程后,导航栏的问题比较明显,调试之后发现是UINavigationBar部分属性的设置在...,字体颜色也没有生效,呈现黑色,查看导航栏特性API:UINavigationBarAppearance后发现,iOS15navigationBar的相关属性设置要通过实例UINavigationBarAppearance...来实现,UINavigationBarAppearance是iOS13更新的API,应该有人已经在用,我们的应用兼容iOS10以上,对于导航栏的设置还没有使用UINavigationBarAppearance...首先是背景色设置失效,让我就想到了navigationbar的问题,所以没有查api了 直接用UITabBarAppearance来设置, 新代码 ...... if #available(iOS 15
/255, alpha: 1.0); //设置背景色(不透明时没用,因为barTintColor在backgroundColor的上一层) appear.backgroundColor = UIColor...(red: 253/255, green: 150/255, blue: 13/255, alpha: 1.0); //去掉navigationBar下的黑线 appear.setBackgroundImage...,比如storybord中的设置了navigationbar的样式 那么全局设置就不生效 设置状态栏 iOS9以下 Info.plist添加两个配置项 View controller-based status...//这样是设置是为了让状态栏文字变成白色 self.navigationController?....navigationBar.barStyle = UIBarStyle.Black; //无navigationController的页面 override func preferredStatusBarStyle
= [UIColor blueColor]; //如果使用的是backgroundColor,就会自带毛玻璃效果 self.navigationBar.backgroundColor = [UIcolor...blueColor]; 1.2 改变 NavigationBar 的字体颜色 NavigationBar 上面有两处可以改变字体颜色,一是标题,二是左右按钮的文字。...下方的阴影 iOS 7 NavigationBar的下方默认是有一条阴影的,如果想要 NavigationBar 和下面内容的背景颜色融为一体的话,就要去掉这个阴影。...iOS7以后,status bar 的背景颜色变成了透明色,而且系统会根据 app的颜色自动改变 status bar 的字体颜色(黑和白)。...,需要隐藏整个 StatusBar,方法如下: 状态栏的高度是20 方法一: 和改变 StatusBar 颜色一样,在 Info.plist 中的 Information Property List 中添加一个
状态栏配置 iOS状态栏的设置有两种方式 这两种方式是根据UIViewControllerBasedStatusBarAppearance也就是View controller-based status...statusBar的颜色 在navigationBar上addSubView该UIView即可 UINavigationBar设置 上面说了状态栏 这里顺便把UINavigationBar也说了 我的配置...//设置背景色(不透明时没用,因为barTintColor在backgroundColor的上一层) appear.backgroundColor = UIColor(red: 52/255, green...不起作用,backgroundColor起作用 3) 在translucent=false也就是不透明时,barTintColor起作用,backgroundColor不起作用 4) 在translucent...下的黑线,会导致状态栏颜色与navigationBar的背景色不同,暂没找到好的解决方法 6) 设置navigationBar背景透明的方式 跟去黑线的方式相同
目录: 一、状态栏与导航栏 二、设置状态栏显隐与字体样式 三、设置状态栏背景色 四、启动页隐藏状态栏 五、状态栏、导航栏相关的常用宏定义 相关文章:iOS导航栏的使用总结 一、状态栏与导航栏 状态栏...:显示时间、电池等信息 导航栏:显示app页面标题,返回按钮等 iOS7之前:状态栏与导航栏是分开的; iOS7之后:状态栏与导航栏合在一起;导航部分总高度(64)= 状态栏高度(20) +导航栏内容高度...((44) iPhoneX设备出现以后,状态栏的高度变为44,导航栏部分总高度(88) = 状态栏(44) + 导航栏内容高度(44) 二、设置状态栏显隐与字体样式 iOS状态栏可以设置显示和隐藏,也可以设置文字的颜色...,状态栏文字为白色 self.navigationController.navigationBar.barStyle = UIBarStyleBlack; 三、设置状态栏背景色 iOS7之后的状态栏和导航栏融合在一块...,所以默认情况下,状态栏都是跟随导航栏背景色的变化而变化。
UINavigationBar是一个我们在开发中必定会碰到的控件,用好它能帮助我们自定义导航栏的样式,所以今天讲解一下UINavigationBar的用法。...self.navigationBar.barTintColor =[UIColor blackColor]; 设置导航栏的背景图片 这里虽然一行代码很简单,但是要来简单的说一下BarMetrics这个枚举值...]; //表示横屏竖屏都显示 UIBarMetricsDefault, //表示在只横屏下才显示,和UIBarMetricsLandscapePhone功效一样,不过iOS8已经弃用了 UIBarMetricsCompact..., UIBarMetricsDefaultPrompt和UIBarMetricsCompactPrompt 更改顶部状态栏的颜色 typedef NS_ENUM(NSInteger, UIStatusBarStyle...,我们设置的返回按钮都是蓝色的默认颜色,那么到底该怎么更改这些按钮的颜色呢 设置返回按钮的颜色,只设置tintColor的颜色就好了 self.navigationController.navigationBar.tintColor
图1.4 “我的Tab”表现 在图1.1中乍一看表现还不错,可是在图1.2中,下拉刷新之后,我们的导航栏还是被刘海挡住了。搜索也中枪,搜索首页没有办法取消,“热门搜索区域”也多出来一块儿空白。...iPhone X 为用户在垂直空间上提供了更多展示余地,且状态栏中也包含了用户需要知道的信息,除非能通过隐藏状态栏带给用户额外的价值,否则苹果建议大家将状态栏还给用户。"...图3.2 iOS 11 UISearchViewController适配 之所以可以这么改,是因为 iOS 11 的 NavigationBar 和 SearchViewController 集成在一块儿了...图4.1 iOS 11 之后的 NavigationBar ?...图4.2 iOS 11 之前的 NavigationBar 适配方式是:取到这个 _UIButtonBarStackView 的位置和尺寸信息,然后更改 PFBNavigationBarContainerView
toc 现象: iOS13黑暗模式开启后,app显示会出现很多意外显示情况。暂时屏蔽是最好的选择。...在项目的target对应的info.plist中添加以下设置: UIViewControllerBasedStatusBarAppearance 再运行就可以看到状态栏了...特殊情况(暗色系导航栏) 如果项目中有更改系统导航栏背景色,比如下面代码: self.navigationController.navigationBar.barTintColor = [UIColor...= NO; 此时状态栏的黑色字体在背景色上会无法显示!...为了可以正常显示状态栏字体,通过作如下设置,即可设置状态栏文字为白色: 更改 info.plist 配置 UIViewControllerBasedStatusBarAppearance</key
(4)最重要的可能是给navigationItem设置左右两边的button,一般默认的在左边有“返回”。在右边的有“摄像头”(如微信朋友圈)。...; //设置导航条背景颜色,也是半透明玻璃状的颜色效果 self.navigationController.navigationBar.backgroundColor=[UIColor...当中上面20就是留给状态栏的高度 NSLog(@"%f",self.navigationController.navigationBar.frame.origin.y); //...则自己主动repeat图片 //UIBarMetricsCompact-竖屏没有,横屏有,相当于之前老iOS版本号里地UIBarMetricsLandscapePhone //UIBarMetricsCompactPrompt...,在状态栏下方显示 //clipsToBounds就是把多余的图片裁剪掉 self.navigationController.navigationBar.clipsToBounds=YES
先看例子 1、没有导航栏的情况 class ViewController: UIViewController { var style: UIStatusBarStyle = .default...2、有导航栏的情况 如果我们使用了导航控制器 UINavigationController, 且它的 navigationBar 没有被隐藏,那么会发现即使重写 preferredStatusBarStyle...因为此时状态栏的样式是根据导航栏的样式来自动变换的。...注意:上面的条件都是在info.pllist 设置 UIViewControllerBasedStatusBarAppearance 或者不设置的情况下(跟true...设置为false 2、有导航栏且navigationBar没有被隐藏 二、UIViewControllerBasedStatusBarAppearance设置为false: 1
= 44; //导航栏在iOS中的高度 const NAV_BAR_HEIGHT_ANDROID = 50; //导航栏在Android中的高度 const NAV_BAR_HEIGHT = Platform.OS...=== 'ios' ?...== 'ios' || DeviceInfo.isIPhoneX_deprecated ?...0 : 20; //状态栏的高度 const StatusBarShape = { //设置状态栏所接受的属性 barStyle: PropTypes.oneOf(['light-content...= NAV_BAR_HEIGHT + STATUS_BAR_HEIGHT; export default class NavigationBar extends Component { //提供属性的类型检查
试图的 Y坐标起始点是 0 而不是原来的64 ,所以建议 设置一个全局的宏定义 NAVHEIGHT 导航条的高度,来随时更改,更可控更方便 (2) UIImageView...: 相信细心的朋友会发现,状态栏是动态隐藏了,可是由于缺少状态栏的20像素,造成了背部的视图整体上移了20像素,我使用的是系统自带的导航栏,也尝试了动态增加 导航栏的高度从44...8.朗读文字 使用到的是 iOS 原声的 AVFoundation.framework 里面的API。 ...,可是在测试的时候还是音量很小,最后换了一台手机,在测试的时候使用+-键加大了音量,声音果然大了起来,才发现手机设置-> 声音-> 设置的声音大小是来电铃声的音量大小,并不是扬声器的音量。...ios-sim 是一个可以在命令控制iOS模拟器的工具。利用这个命令,我们可以启动一个模拟器,安装app,启动app,查询iOS SDK。它可以使我们像自动化测试一样不用打开Xcode。
目录: 一、设置导航栏样式 二、解决自定义导航栏返回按钮后侧滑不可用问题 三、隐藏导航栏底部的分割线 四、导航栏引起的布局问题 相关文章:iOS状态栏的使用总结 一、设置导航栏样式 设置导航栏的样式可分为全局设置与局部设置...setBarTintColor:[UIColor orangeColor]]; } 二、解决自定义导航栏返回按钮后侧滑不可用问题 iOS导航栏自带的返回按钮形式单一,所以大多情况下,我们都需要自定义导航栏返回按钮...,用于优化滑动类视图(继承于UIScrollView的视图)在视图控制里的显示: iOS系统的导航栏UINavigationBar与标签栏UITabBar默认都是半透明模糊效果,在这种情况下系统会对视图控制器的...: //automaticallyAdjustsScrollViewInsets在11.0后失效,所以需要判断 if (@available(iOS 11.0,*)) { scrollView.contentInsetAdjustmentBehavior...self.edgesForExtendedLayout=UIRectEdgeNone 3.导航栏透明属性translucent 上述两种属性都是在解决导航栏半透明情况下的布局问题,但是如果我们的需求就是导航栏不透明
这就导致不同型号的手机的状态栏的高度是不一样的,导致实际效果并不好。 导航栏在不同的型号上是不受影响的都是44px。...缩放 aspectFill 保持纵横比缩放图片,只保证图片的短边能完全显示出来。也就是说,图片通常只在水平或垂直方向是完整的,另一个方向将会发生截取。...状态栏占位组件 状态栏我们可能每个页面都用,为了方便,我们可以定义为组件。.../z-navigationbar.vue 页面 navigationbar>
这段时间的一直在忙于编码,加上国庆假期等等时间,又有很长时间没有写过博客了。 自从升级了Xcode8,以及在做iOS10的适配工作中,我发现在NavigationBar这个控件中,有了一个小小的坑。...因为在iOS7之后,NavigationBar之后,默认有一条1px的细线,这条细线怎么去,我在这里就不赘述了,因为谷歌上以及StackOverflow上有太多的方法去除这条细线。...但是我这次发现,在我升级到iOS10之后,iOS10的设备中虽然使用了以前的方法,但是还是出现了这个细线,但是iOS10以下的设备这条细线还是不存在的。...于是我自己得出了这么个结论,之前去除NavigationBar的这条细线的方法失效了(这里并不是说所有方法失效,至少我使用的方法是失效的),那么在发现自己有这个问题的时候,不妨可以来换一种方法实现隐藏NavigationBar...头文件中的方法声明 /** * NavigationBar底部隐藏1px的线 */ - (void)lix_hideBottomHairline; /** * NavigationBar底部显示
iOS 15导航栏设置 背景 使用Xcode 13.0运行项目到iOS 15的手机上,出现导航栏黑色。但是在低版本Xcode 运行到手机就没有问题。 修改 设置方法需修改,参考barTintColor not working in iOS 15 原来设置导航栏代码不变,新增设置UINavigationBarAppearance实例对象的属性...,然后赋值到全局的 navigationBar 或者单个页面的 navigaitonBar 属性中,取决于项目的设置是全局 NavigationBar 还是单个页面设置(可参考iOS StatusBar...new]; barAppearance.backgroundColor = color; // 设置背景颜色 barAppearance.titleTextAttributes...setBackgroundImage not working on iOS15 barTintColor not working in iOS 15