用swift实现navigation bar的完全透明 & navigation bar中button的字体大小调整

简介:

这几天在项目中遇到的关于navigation bar的一些小问题以及解决的方法记录一下吧:

1.  完全透明navigation bar

有时候我们想要navigation viewcontroller顶部的navigation bar变得完全透明,我们首先想到是从story board下手,但是尝试了半天,也不能达到完全透明的效果


选择这里的Translucent Navigation Bar只能让bar变成那种可以稀释背景色的毛玻璃的效果,那么究竟应该如何才能把整个navigation bar都变成透明呢?

答案是通过代码实现:

非常简单,在viewDidload或者DidAppear中,加入下面3行代码:

        self.navigationController?.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: UIBarMetrics.Default)
        self.navigationController?.navigationBar.shadowImage = UIImage()
        self.navigationController?.navigationBar.translucent = true

自己动手试一下效果吧


2. 改变bar中的backButton或者leftBarButton的样式

如果我们采用了navigation viewcontroller系列,在我们切换到下一页面的时候,在bar的最左面会自动出现一个返回的按钮,这个按钮的文字默认是上一个页面的barItem的文字内容,这些都是默认的,会自动帮我们建立。

那有时候会遇到的问题是,如果A页面的bar Item的文字内容很长,从A页面push到B页面后,这个返回按钮的文字就会很长,从而把B页面的item内容挤到右侧,这样很不美观。

这里我们可以有两种方式来处理,

1> 我们可以新建一个新的按钮,并且赋予它文字,样式等

let backButton = UIBarButtonItem(title: "< Back", style: UIBarButtonItemStyle.Plain, target: self, action: "goBack")
navigationItem.leftBarButtonItem = backButton
navigationItem.leftBarButtonItem?.setTitleTextAttributes([NSFontAttributeName: UIFont(name: "Chalkduster", size: 20)!], forState: UIControlState.Normal)

这样做的缺点是,你没有办法从屏幕的左侧向右滑屏实现返回的操作了,而且还必须在goBack的function中自己手动调用navigation的pop方法来达到返回的效果。

2> 或者我们可以来改变这个返回按钮的样式,比如手动把它的文字字体大小调整下

        let customFont = UIFont(name: "heiti SC", size: 12.0)
        UIBarButtonItem.appearance().setTitleTextAttributes([NSFontAttributeName: customFont!], forState: UIControlState.Normal)
注意,因为我们其实是改变的UIBarButtonItem ,所以,这段代码我们要放到Appdelegate中来实现。这样,所有的bar中的button类的字体都被强制设定为12号大小了
目录
相关文章
|
Swift
Swift之自定义Button
Swift之自定义Button
199 0
Swift之自定义Button
Swift语言IOS8开发战记1.Button与Alert
      大家好,本人是个Swift开发的推崇者,自Swift推出以来,关于Swift语法的书籍像雨后春笋般冒了出来,但是市面上没有一本整合Swift与IOS8开发的书籍,为广大使用Swift开发IOS8的程序员来说带来了不小的难度。
864 0
|
4月前
|
安全 编译器 Swift
IOS开发基础知识: 对比 Swift 和 Objective-C 的优缺点。
IOS开发基础知识: 对比 Swift 和 Objective-C 的优缺点。
100 2
|
3月前
|
监控 API Swift
用Swift开发iOS平台上的上网行为管理监控软件
在当今数字化时代,随着智能手机的普及,人们对于网络的依赖日益增加。然而,对于一些特定场景,如家庭、学校或者企业,对于iOS设备上的网络行为进行管理和监控显得尤为重要。为了满足这一需求,我们可以利用Swift语言开发一款iOS平台上的上网行为管理监控软件。
211 2
|
4月前
|
监控 Swift iOS开发
局域网计算机监控软件中利用Swift构建iOS端的移动监控应用
在局域网计算机监控软件的开发中,构建iOS端的移动监控应用是一项关键任务。本文将介绍如何利用Swift语言实现这一目标,通过多个代码示例展示关键功能的实现。
225 1
|
4月前
|
安全 JavaScript 前端开发
IOS开发基础知识:介绍一下 Swift 和 Objective-C,它们之间有什么区别?
IOS开发基础知识:介绍一下 Swift 和 Objective-C,它们之间有什么区别?
69 0
|
6月前
|
JavaScript 前端开发 PHP
用swift开发ios移动端app应用初体验
直接跟着 apple 官方的 SwiftUI 教程跑的,写惯了 javascript 奔放的代码,很多语法理解起来还是有点费劲
59 1
|
8月前
|
Swift iOS开发
iOS OC混编Swift 后者无法走断点
iOS OC混编Swift 后者无法走断点
49 0
|
Swift iOS开发
IOS使用Swift加载Xib文件
IOS使用Swift加载Xib文件
270 0
|
Swift iOS开发
iOS开发 - 适合工程多环境切换(swift环境),适合经常打很多不同环境包的人
iOS开发 - 适合工程多环境切换(swift环境),适合经常打很多不同环境包的人
220 0
iOS开发 - 适合工程多环境切换(swift环境),适合经常打很多不同环境包的人

相关课程

更多