UINavigationBar 点儿事&&去掉 NavigationBar 上的分割线
2015-06-25 15:52
323 查看
转于:http://my.oschina.net/joanfen/blog/133150
背景:App 主色调是 #2198C8(色 A), 但新增了一个模块在 push 到那个模块时需要改变颜色 为#25B4C7(色 B) ,然后再返回时依然是 #2198C8
用到的宏先列一下
?
很简单的问题,项目的 ViewController 都是继承自一个自定义的基类,于是我在基类中写了一个方法,是这样的
?
然后在需要改变颜色的ViewContoller(设为 C1)中调用
?
在基类的 viewWillAppear 中调用
?
本以为这样就大功告成了(别担心,如果你是来找答案的,到这里就可以成功了,我这里情况有点特殊,感兴趣的可以看下去),可当我从 Apush C1,再pop 到 A,整个颜色变化都是对的,like this:
A(色 A) ↔ C1(色 B)
但是,当我从 A push到 C1,再push 到 C2,然后 pop 回 C1,pop 回 C2时变成了这样:
A(色A) → C1(色 B) → C2(色 B)
A( 色B,这里本应该是色 A) ← C1(色 B) ← C2(色 B)
查了好久的 Nav 层级关系,可只要进了 C2界面就不行,开始以为是 push 了两层的原因,后来发现 push 到第二层的页面只有是 C2才会这样,到别的页面是没有问题的,然后我这时才好好看了一下 C2的导航条,是这样的
为了做这样的效果,我们当时是去掉了导航条上自带的一条分割线,方法在下面,否则这个中间会有条线,所以我想应该是对 Bar 的这个处理有问题
PS:!!更新于2015-06-05 ,原来要去掉分割线只需要一句话即可
?
整个人都不好了,下面的是之前的坑代码
?
看完这段代码你们或许明白了为什么我返回之后在试图中设置的 BarTintColor 没有效果了,因为在上面的For 循环中,NavigationBar 上的 imageView 被 Hidden,我们添加了一个自己得 imageView, 所以现在只需要将这个自己添加的imageView 去掉就好了,于是我在上面那段代码中为自行添加到 Bar 上的 imageView设置了一个 tag
?
然后在 C2视图消失时将这个自定义的背景 imgView 移除,并将 Bar自带的 imageView 的隐藏状态取消:
?
这样我得到了我想要的结果:
A(色A) ↔ C1(色 B) ↔ C2(色 B)
设置标题颜色字体,需要设置其他属性,只需要在字典中添加对应的 Key-Value 即可,如阴影等
?
先更新这些,下次看到坑在填
----分割线----
用UINavigationController的时候有时候为了整体效果可能需要修改navigationBar颜色,这时候只要更改它的tintColor就行了
苹果默认效果
在代码中加入
?
最终效果
背景:App 主色调是 #2198C8(色 A), 但新增了一个模块在 push 到那个模块时需要改变颜色 为#25B4C7(色 B) ,然后再返回时依然是 #2198C8
用到的宏先列一下
?
?
?
?
A(色 A) ↔ C1(色 B)
但是,当我从 A push到 C1,再push 到 C2,然后 pop 回 C1,pop 回 C2时变成了这样:
A(色A) → C1(色 B) → C2(色 B)
A( 色B,这里本应该是色 A) ← C1(色 B) ← C2(色 B)
查了好久的 Nav 层级关系,可只要进了 C2界面就不行,开始以为是 push 了两层的原因,后来发现 push 到第二层的页面只有是 C2才会这样,到别的页面是没有问题的,然后我这时才好好看了一下 C2的导航条,是这样的
为了做这样的效果,我们当时是去掉了导航条上自带的一条分割线,方法在下面,否则这个中间会有条线,所以我想应该是对 Bar 的这个处理有问题
去掉 NavigationBar 上的分割线
PS:!!更新于2015-06-05 ,原来要去掉分割线只需要一句话即可?
?
?
?
A(色A) ↔ C1(色 B) ↔ C2(色 B)
Other Settings
设置标题颜色字体,需要设置其他属性,只需要在字典中添加对应的 Key-Value 即可,如阴影等?
----分割线----
Old 于2013-05-24 14:35
用UINavigationController的时候有时候为了整体效果可能需要修改navigationBar颜色,这时候只要更改它的tintColor就行了苹果默认效果
在代码中加入
?
相关文章推荐
- SpannableString与SpannableStringBuilder
- Unique Paths 算法详解
- Android: Failure [INSTALL_FAILED_DEXOPT] and Failure [INSTALL_FAILED_UID_CHANGED] 解决方案
- iOS 8 Auto Layout界面自动布局系列2-使用Xcode的Interface Builder添加布局约束
- salesforce csv 1000 limitation issue
- [LeetCode] Repeated DNA Sequences
- 仿QQ侧滑效果(swifit)
- unique_ptr使用简介
- IOS本地消息推送(UILocalNotification)
- getContextPath、getServletPath、getRequestURI的区别
- easyui menubutton和menu对齐
- Druid使用说明书
- UISearchbar设置placeholder字体颜色大小
- require与require async的区别
- Google+ 团队的 Android UI 测试
- UI界面库
- EasyUI回车提交表单
- require.js模块化管理和加载js(按需加载)简单实例教学
- HackerRank - "Xor subsequence"
- 关于easyui datebox的记录