关闭

IOS Swift3.0自定义导航栏(UINavigation)

标签: iosswift解决方案
4354人阅读 评论(0) 收藏 举报
分类:

从学IOS开始到现在已经半年了,也独立做过两个项目,都是涉及蓝牙方面的通信. 在我开发过程中遇到一些问题,然后寻找到的解决方案分享给大家也是开年的第一篇希望能过帮助大家。在我们开发程序过程中不可能都理所当然的使用IOS系统自带的一些控件,我们往往都需要通过定制才能完成和达到一定效果,下面就和大家分享IOS自定义导航栏和导航栏的高度。
最终的效果图是这样的,大家也可以改变背景, 或者是 right, left , title 使用图片,这里只是告诉大家怎样改变高度
这里写图片描述

第一步:我们的ViewController 需要支持导航栏
需要在 AppDelegate 中 didFinishLaunchingWithOptions方法中做如下实现

let sb=UIStoryboard(name: "Main", bundle: nil)
let vc=sb.instantiateViewController(withIdentifier: "ViewController")
let navigationC=UINavigationController(rootViewController: vc)
self.window?.rootViewController=navigationC

通过以上方法我们跳转的控制器就自定了导航栏

第二步:为了使程序以后扩展或者修改方便我们重新建立一个类,使用extension ,
然后创建一个方法,名字自己随便定义,我使用的是test

func test() {
    //隐藏系统的导航栏 不然点击事件受到影响
    self.navigationController?.isNavigationBarHidden=true
    // 创建一个导航栏
    let navBar = UINavigationBar(frame: CGRect(x:0, y:20, width:self.view.frame.size.width, height:60))
    // 导航栏背景颜色
    navBar.backgroundColor = UIColor.blue
    //这里是导航栏透明
    //navBar.shadowImage = UIImage()
    //navBar.setBackgroundImage(UIImage(), for: UIBarMetrics.default)

    // 自定义导航栏的title,用UILabel实现
    let titleLabel = UILabel(frame: CGRect(x:0,y:0,width:50,height:60))
    titleLabel.text = "LOG IN"
    titleLabel.textColor = UIColor.red
    //这里使用系统自定义的字体
    //titleLabel.font = UIFont(name: "Roboto-Medium", size: 16)

    // 创建导航栏组件
    let navItem = UINavigationItem()
    // 设置自定义的title
    navItem.titleView = titleLabel

    // 创建左侧按钮
    let leftButton = UIBarButtonItem(title: "leftButton", style: .plain, target: self, action: nil)
    leftButton.tintColor = UIColor.red

    // 创建右侧按钮
    let rightButton = UIBarButtonItem(title: "rightButton", style: .plain, target: self, action: nil)
    rightButton.tintColor = UIColor.red

    // 添加左侧、右侧按钮
    navItem.setLeftBarButton(leftButton, animated: false)
    navItem.setRightBarButton(rightButton, animated: false)

    navigationItem.setHidesBackButton(true, animated: false)
    // 把导航栏组件加入导航栏
    navBar.pushItem(navItem, animated: false)

    // 导航栏添加到view上
    self.view.addSubview(navBar)
}

第三步就是调用:

override func viewDidLoad() {
    super.viewDidLoad()
     test()
}

通过以上方法大家就可以使用了:
源码下载地址UINavigation01

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Swift UINavigationController(导航控制器)的创建及导航栏的设置

Swift语言新建的项目入口为AppDelegate.swift 我们找到 func application(application: UIApplication, didFinishLaunc...
  • lwjok2007
  • lwjok2007
  • 2015-09-10 16:47
  • 13207

Swift自定义导航栏返回按钮

如何去除swift系统自带的导航栏返回按钮?可以自定义返回按钮在swift中,怎么替换系统自带的导航栏返回按钮?比如说我要替换成一张返回按钮图片,点击返回到上一页首先,看一下系统自带的导航栏返回按钮的...
  • Mango_ios
  • Mango_ios
  • 2017-04-13 10:54
  • 2148

iOS开发(Swift):创建UINavigationView的三种方法

UINavigationController是iOS开发中很常用的一种组件,由于种种原因许多人喜欢从代码创建视图控件,包括UINavigationController,但是有时候我们的屏幕控件太多,一...
  • KEZHENXU
  • KEZHENXU
  • 2014-12-17 00:19
  • 20419

iOS开发UINavigation系列一——导航栏UINavigtionBar 收藏

iOS开发UINavigation系列一——导航栏UINavigtionBar 一、导航栏的使用         在iOS开发中,我们通常会使用导航控制器,导航控制器中封装了一个UINavig...
  • wujakf
  • wujakf
  • 2016-12-08 10:50
  • 464

IOS导航栏UINavigation

在Iphone开发中,UINavigation算是最常用的控件,因为大多数的应用都会用到导航,UINavigation的用法也是非常的简单 创建一个新的Single View模板项目 Ap...
  • qq5306546
  • qq5306546
  • 2012-10-06 01:02
  • 3172

iOS自定义导航栏库

  • 2017-09-26 14:41
  • 26.41MB
  • 下载

Swift自定义导航栏返回按钮

如何去除swift系统自带的导航栏返回按钮?可以自定义返回按钮在swift中,怎么替换系统自带的导航栏返回按钮?比如说我要替换成一张返回按钮图片,点击返回到上一页首先,看一下系统自带的导航栏返回按钮的...
  • Mango_ios
  • Mango_ios
  • 2017-04-13 10:54
  • 2148

自定义iOS7导航栏背景,标题和返回按钮文字颜色

在iOS7下,默认导航栏背景,颜色是这样的,接下来我们就进行自定义,如果你仅仅是更改一下背景和颜色,代码会很简单,不需要很复杂的自定义View来替代leftBarItem 更改导航栏...
  • mad1989
  • mad1989
  • 2014-11-26 16:22
  • 188507

IOS开发中如何自定义导航栏的按钮,文字和背景图片

在iOS7下,默认导航栏背景,颜色是这样的,接下来我们就进行自定义,如果你仅仅是更改一下背景和颜色,代码会很简单,不需要很复杂的自定义View来替代leftBarItem 更改导航栏的背景和文字...
  • u012273301
  • u012273301
  • 2016-05-13 21:28
  • 3751

iOS 模态视图和导航栏自定义切换动画与交互动画

在iOS7之前,开发者为了寻求自定义Navigation Controller的Push/Pop动画,只能受限于子类化一个UINavigationController,或是用自定义的动画去覆盖它。但是...
  • chmhb
  • chmhb
  • 2014-08-12 16:07
  • 2213
    个人资料
    • 访问:35809次
    • 积分:631
    • 等级:
    • 排名:千里之外
    • 原创:25篇
    • 转载:13篇
    • 译文:0篇
    • 评论:0条
    联系我们

    email: my_snail@126.com
    qq : 372943021
    微信公众平台:
    W1314DeCR