当前位置: 首页 > news >正文

Swift 设置navigation左右两侧按钮

我们以设置右侧按钮为例,左侧方法类似

方法一,直接自定义文字

  1. let item=UIBarButtonItem(title: "分享", style: UIBarButtonItemStyle.Plain, target: self, action: nil)  
  2. self.navigationItem.rightBarButtonItem=item  


方法二,使用系统图标

  1. let item1=UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Done, target: self, action: nil)//此处使用的图标UIBarButtonSystemItem是一个枚举.大家可以尝试一下其他值出来是什么  
  2. self.navigationItem.rightBarButtonItem=item1  


方法三,使用自定义控件

这里我们自定义button为例来实现

  1. let btn1=UIButton(frame: CGRectMake(0, 0, 50, 30))  
  2. btn1.setTitle("完成", forState: UIControlState.Normal)  
  3. let item2=UIBarButtonItem(customView: btn1)  
  4. self.navigationItem.rightBarButtonItem=item2  


方法四,我们还可以直接放一张图片上去

  1. var img=UIImage(named: "test_img")  
  2.   
  3. let item3=UIBarButtonItem(image: img, style: UIBarButtonItemStyle.Plain, target: self, action: nil)  
  4. self.navigationItem.rightBarButtonItem=item3  

 

如果只是按照以上方法实现,我们会发现出来的是一个纯色的图片,是因为iOS扁平化设计风格应用之后做成这样的,如果需要现实图片,我们可以设置一项 img=img?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)

 


以上方法都是添加一个按钮

如果想一次添加多个该怎么做?

我们发现我们给右侧按钮赋值的方法是 rightBarButtonItem   其实还有属性 rightBarButtonItems

看代码

  1. let items1=UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Pause, target: self, action: nil)  
  2. let items2=UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Action, target: self, action: nil)  
  3. self.navigationItem.rightBarButtonItems=[items1,items2]  


如果想设置左侧按钮 直接 调用 self.navgigationItem.leftBarButtonItem 即可

相关文章:

  • JavaEE异常
  • jQuery根据元素值删除数组元素的方法
  • 简单的原生ajax
  • restful命名
  • android Lifecycle源码分析--源码阅读100天(1)
  • Java-TreeSet的用法-入门
  • (四)鸿鹄云架构一服务注册中心
  • 占位子,考完试写
  • golang学习笔记 ---命令行参数
  • 森林病虫防治系统 (结束)
  • Linux内核中进程上下文、中断上下文、原子上下文、用户上下文的理解【转】...
  • 计算机
  • lucene4.7学习总结
  • python头部 #!/usr/bin/env python
  • nodejs安装及express
  • 【159天】尚学堂高琪Java300集视频精华笔记(128)
  • CSS魔法堂:Absolute Positioning就这个样
  • Druid 在有赞的实践
  • HTTP那些事
  • iOS小技巧之UIImagePickerController实现头像选择
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • opencv python Meanshift 和 Camshift
  • Spring核心 Bean的高级装配
  • Vue 动态创建 component
  • Vue2.x学习三:事件处理生命周期钩子
  • Vultr 教程目录
  • 将 Measurements 和 Units 应用到物理学
  • 入门级的git使用指北
  • 推荐一款sublime text 3 支持JSX和es201x 代码格式化的插件
  • 系统认识JavaScript正则表达式
  • 学习笔记TF060:图像语音结合,看图说话
  • 原生 js 实现移动端 Touch 滑动反弹
  • 如何正确理解,内页权重高于首页?
  • 数据库巡检项
  • ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTr
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • (04)Hive的相关概念——order by 、sort by、distribute by 、cluster by
  • (11)MATLAB PCA+SVM 人脸识别
  • (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作...
  • (MATLAB)第五章-矩阵运算
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (学习日记)2024.03.25:UCOSIII第二十二节:系统启动流程详解
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • (转)VC++中ondraw在什么时候调用的
  • .apk 成为历史!
  • .jks文件(JAVA KeyStore)
  • .NET 4 并行(多核)“.NET研究”编程系列之二 从Task开始
  • .NET Core、DNX、DNU、DNVM、MVC6学习资料
  • .net redis定时_一场由fork引发的超时,让我们重新探讨了Redis的抖动问题
  • .net 获取url的方法
  • .net遍历html中全部的中文,ASP.NET中遍历页面的所有button控件
  • /usr/bin/python: can't decompress data; zlib not available 的异常处理
  • /usr/lib/mysql/plugin权限_给数据库增加密码策略遇到的权限问题
  • :not(:first-child)和:not(:last-child)的用法