GitHub-Demo
有时候会有一些比较奇怪的需求.譬如导航栏上面的title不在中间.(非原生放在中间的),别给我说那种文字颜色字体大小什么的原生不支持(attributedString了解一下).
好了.首先,介绍一下去年WWDC提出的safeLayoutGuide安全区的概念.
这玩意最低支持iOS9.
所谓安全区,基本上下图的绿色框框就概括了
大家也知道.UINavigationBar属于原生控件.原生控件的话在某些支持上比较好.(比如iOS11出来的大标题prefersLargeTitles).如果用UIView去写的话呢.又要想到把电池栏遮住.但是不管有没有”耳朵”.导航栏Default&&prefersLargeTitles = NO的时候.导航栏高度都是44.这是固定的.我们在上面加什么控件.居中直接就centerY相等于Nav就行.
我们也知道.导航栏有一个毛玻璃(其实我是觉得这个毛玻璃挺好看的,可能大多数App的设计觉得这玩意难看吧).怎么去掉这个毛玻璃.还有上图iPhoneX导航栏上面的那根线呢.
类似于UITabbar.去掉线就是
颜色、穿透、bar的样式如下
对于我们设计的那个奇怪的需求.就是Controller底部有一个全屏性质的图片.要求是从屏幕顶部开始.但是左边的某个点要对上Nav上的某个点.
如果我们直接写在Controller的View上面的话.由于导航栏是浮动的那么就对不准.那么我们就可以加在导航栏上.
有一点要强调一下.如果是和我这种懒癌一样喜欢用
如果你要加按钮,请在最后写,免得被图片盖住
我更加推荐insertSubView的方式.
insert都一样.插入的意思.关键在后面的below和above.
above上面.below是下面,这个要分清楚.
返回按钮回传之类的懒虫可以直接写个Block就OK.
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!