iOS 导航栏设置

2023-10-27

  • 导航栏右侧的Done按钮怎么是蓝色的?
  • 导航栏右侧按钮大小设置
  • 导航栏标题按钮样式设置
  • 导航栏设置颜色
  • 导航栏变白不显示颜色?

iOS 13 之后使用新的API和类(UINavigationBarAppearance)来设置导航栏的标题大小,颜色,字体;导航栏的颜色;导航栏按钮样式。

#import "MMBaseNavigationController.h"

@interface MMBaseNavigationController ()

@end

@implementation MMBaseNavigationController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    
    
    /// Config the navigation bar appearance
    
    if (@available(iOS 13.0, *)) {
        UINavigationBarAppearance *appearance = [[UINavigationBarAppearance alloc] init];
        // Navigation bar background image
        appearance.backgroundImage = [UIImage imageNamed:@"top"];
        // Navigation bar title
        appearance.titleTextAttributes = @{NSFontAttributeName:[UIFont systemFontOfSize:20],NSForegroundColorAttributeName:[UIColor whiteColor]};

        // Config the done button appearance
        UIBarButtonItemAppearance *doneAppearance = [[UIBarButtonItemAppearance alloc] init];
        doneAppearance.normal.titleTextAttributes = @{NSFontAttributeName:[UIFont systemFontOfSize:16],NSForegroundColorAttributeName:[UIColor whiteColor]};
        appearance.doneButtonAppearance = doneAppearance;
        
        self.navigationBar.standardAppearance = appearance;
        self.navigationBar.scrollEdgeAppearance = appearance;
    }
    else {
        [[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"top"] forBarMetrics:UIBarMetricsDefault];
        [[UINavigationBar appearance] setShadowImage:[[UIImage alloc] init]];
    }

@end
  • standardAppearance 和 scrollEdgeAppearance

standardAppearance 和 scrollEdgeAppearance 分别是导航栏的标准样式和滚动样式。
什么是标准样式?其实就是静态显示的样式。
什么是滚动样式,就是当导航视图被present出来这种,这时候如果不设置scrollEdgeAppearance的话导航栏颜色就是白色的(iPhone上是这样,iPad的不会出现)。

  • 在Controller中添加导航栏按钮
    self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStyleDone target:self action:@selector(done:)];

注意

  1. self.navigationItem,不小心写成self.navigationController.navigationItem就错了,不是一回事。
  2. style:UIBarButtonItemStyleDone

设置图片

    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
    button.frame = CGRectMake(0, 0, 40, 40);
    [button setImage:[UIImage imageNamed:@"back-icon"] forState:UIControlStateNormal];
    [button addTarget:self action:@selector(backButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
    
    UIBarButtonItem *leftBarButtonItem  = [[UIBarButtonItem alloc] initWithCustomView:button];
    self.navigationItem.leftBarButtonItem = leftBarButtonItem;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iOS 导航栏设置 的相关文章

  • 如何检测用户是否第一次打开应用程序[重复]

    这个问题在这里已经有答案了 是否可以检测用户是否是第一次打开iOS应用程序 使用Objective C 我想在用户第一次打开应用程序时显示欢迎消息 但之后不再向他们显示 我正在寻找类似的东西 BOOL firstTime AppDelega
  • 如何动态获取 UITableViewCell 的高度

    我创建了自定义的tableViewCell 我在UITableViewCell中添加了UIView SubView 所以我在 UIView 中的所有动态文本和图像内容都会根据文本和图像大小而变化 但现在 HeightforRowAtInde
  • 如何使用 CNContacts 快速获取手机号码?

    我有一些代码可以检索用户联系人中的所有电话号码 但只想过滤掉手机号码 目前 我只是通过将第一个数字为 或第二个数字为 7 的数字添加到数组中来实现此目的 如下所示 func findContacts gt CNContact let key
  • BigQuery 未显示链接的 Firebase Analytics 事件日志的任何数据集

    我将我的帐户链接到 Big Query 但 Firebase Analytics 事件不会自动加载到 BigQuery 中 显示 未找到数据集 警告 我的工作进度附在下面 请查收 I have getting firebase Analyt
  • jQuery:离线后 POST 出错(iOS 和 Chrome)

    我构建了一个具有离线功能的 HTML5 Web 应用程序 使用 AppCache 程序流程为 Online 在网络上时 应用程序预加载一些基本信息 工作 Offline 用户拿着装有应用程序的平板电脑offline 然后在应用程序上执行他们
  • 为什么选择选择器选项后我的 SwiftUI 页面标题会发生变化?

    struct SettingsView View let settings Setting Setting name Aperture Increments options 1 3 1 2 1 Setting name Shutter Sp
  • UIViewController 不旋转到横向

    在许多情况下需要旋转控制器但不起作用 现在我遇到了相反的问题 它正在旋转 我想禁用它 在那个 ViewController 中我有这个 BOOL shouldAutorotateToInterfaceOrientation UIInterf
  • iOS 7 tabBar 横线,如何去掉?

    Apple 在 iOS 7 中的 tabBar 上添加了一条细线 该线应该在 tabBar 和 UI 之间起到阴影或淡入淡出的作用 由于我使用的是定制的 tabBar 这条线非常令人恼火 你如何删除它 请告诉我这是可能的 否则我需要重新设计
  • 在 WKWebView 中禁用缩放?

    有谁知道在 WKWebView 中禁用双击和捏缩放的简单方法 我尝试过的任何方法都不起作用 Webview scrollView allowsMagnification false Error value of type WKWebView
  • 未知异常和崩溃

    当我尝试快速滚动表格视图或从远程重新加载数据时 我的应用程序崩溃了 当我先进行远程获取然后滚动表格视图时 一切似乎都工作正常 我不知道下面的崩溃日志意味着什么 它只是有时工作正常 有时崩溃 Incident Identifier 710A1
  • 如何使用phonegap在iOS应用程序中防止键盘推送webview

    当屏幕底部的输入字段获得焦点时 键盘会向上推我的网络视图 并且页面的上部不再可见 我想防止键盘推高网络视图 有人有主意吗 对焦 设置window scrollTo 0 0 这可以防止键盘完全推高 webview input on focus
  • CATextLayer 上 iOS 6 中不需要的垂直填充

    背景 我在 iOS 5 中开始了我的项目 并构建了一个带有图层的漂亮按钮 我在按钮上添加了一个 textLayer 并使用以下代码将其居中 float textLayerVerticlePadding self bounds size he
  • 根据内容自动更改单元格高度 - Swift

    在 Swift 中使用 UITableView 有人可以帮我根据标签 图片和描述自动更改单元格的高度吗 所有信息都正确传递 我只需要帮助格式化它 我尝试使用调整它cell frame size height 但这没有效果 我可以更改故事板中
  • iOS7 由 Interface Builder 生成的 NSIBPrototypingLayoutConstraint 自动布局约束问题

    以前在 iOS6 中 我的聊天消息视图控制器使用 IB 中精心构建的自动布局约束正确显示和动画 下面是 Xcode 5 中删除了约束的当前视图层次结构 升级到 XCode 5 和 iOS7 后 我发现我需要清除所有旧的约束才能解决默认的半透
  • 在 Objective-C 中的 Swift 类上调用 NSStringFromClass 返回模块损坏的名称

    我知道这个问题 https stackoverflow com questions 24107658 get a user readable version of the class name in swift in objc nsstri
  • 使用输入类型 = 文件捕获照片时移动 safari 崩溃

    我正在使用输入类型文件在 iOS 中启动相机 我正在使用以下代码行
  • 詹金斯配置文件问题

    检查依赖关系 找不到与 Nitin xxxxxxx xyzCAppStore 匹配的 iOS 配置文件 Xcode 找不到与 Nitin xxxxxxx xyzCAppStore 匹配的配置文件 安装配置文件 通过将其拖放到 Xcode 的
  • ios8 键盘高度有所不同

    我使用下面的代码来获取键盘高度 该高度在带有 ios8 的 iPhone 5s 设备中与带有 ios7 的 IPhone4s 设备中有所不同 因此 当我在带有 ios8 的 iPhone5s 中点击它时 我的文本字段移动得非常高 而相同的代
  • 移动带有图像的文件夹

    我正在使用 Xcode 目前我的图像位于桌面上 将它们移至文件夹的正确方法是什么 当我只是复制粘贴它们时 我的项目不会构建 有没有简单的方法可以做到这一点 而无需将图像一一重新链接 1 在 Xcode 项目导航器中 选择要添加的项目的目标项
  • 在 Object 子类及其自己的子类上实现ignoreProperties()

    我是领域新手 我正在使用继承自 Object 的基类以及该基类的自定义子类创建模型 我的模型要求基类通过覆盖静态来声明一些属性被忽略ignoredProperties 方法 当尝试在某些基类子类上重写该方法时 我收到一个 Swift 编译器

随机推荐

  • tplogin服务器无响应,tplogin.cn打不开解决教程

    TP Link TL WDR6600 有线路由器作为无线交换机应用设定实例教程 1 电脑连接和无线路由器 将设定连接电脑到无线路由器的LAN口 保证系统自动获得到IP地址和DNS服务器ip 以下 留意 以便防止IP地址或DHCP网络服务器矛
  • 查看linux jvm使用情况,查看jvm内存使用命令

    jmap linux下特有 也是很经常使用的一个命令 java 观察运行中的jvm物理内存的占用状况 linux 参数以下 数据库 heap 打印jvm heap的状况 histo 打印jvm heap的直方图 其输出信息包括类名 对象数量
  • oracle提示 o s-error,【案例】Oracle报错OSD-04016 O/S-Error 使用dd复制数据块恢复数据...

    天萃荷净 运维DBA反映数据库在异常断电导致硬盘IO出现O S Error OS 23 数据错误 循环冗余检查 错误 分析原因为坏块导致 通过dd来复制数据块修复数据库 一台数据库因为异常断电导致硬盘IO出现O S Error OS 23
  • 在vue项目引入天地图,根据经纬度获取具体地址

    1 申请key 天地图地图服务对所有用户开放 使用本组服务之前 需要申请Key 2 引入API 地图API是由JavaScript语言编写的 您在使用之前需要通过
  • OpenCV——双边滤波

    目录 一 双边滤波 二 C 代码 三 python代码 四 结果展示 一 双边滤波 双边滤波是一种综合考虑滤波器内图像空域信息和滤波器内图像像素灰度值相似性的滤波算法 可以实现在保留区域信息的基础上实现对噪声的去除 对局部边缘的平滑 双边滤
  • 神码ai伪原创【php源码】

    大家好 小编为大家解答python必备常用英语词汇笔记的问题 很多人还不知道python中常用的英语单词 现在让我们一起来看看吧 火车头采集ai伪原创插件截图 一 什么是注释 注释是对一段代码的解释 不参与程序运行 起到提示作用 教我pyt
  • Windows注册表互换Caps Lock、Shift、Ctr l键

    按键映射 在注册表找到 HKEY LOCAL MACHINE SYSTEM CurrentControlSet Control Keyboard Layout 下如果没有Scancode Map就新建一个二进制值项名为Scancode Ma
  • 有了这两本书,学习领域驱动设计会很容易

    自2003年Eric Evans的著作 领域驱动设计 面世以来 领域驱动设计 DDD 相关的实践书籍并不多 整体的理论发展速度并不快 以至于很长一段时间 开发团队的实践过程总是磕磕绊绊 这让他们觉得领域驱动设计的门槛很高 甚至有人怀疑领域驱
  • Linux——fork进程复制,fork的写时拷贝技术

    前言 进程是一个运行中的程序 每个进程都有一个进程控制块 英文缩写PCB Linux系统中的进程控制块是一个结构体strut task struct实现 PCB是进程存在的唯一标志 数据结构中定义的内容是为后面的管理提供支持的 所以不同的操
  • 记录promise解决js与oc交互中异步回调的实践

    项目需求 更改h5与客户端 安卓 ios交互 的交互方法 使用第三方jsBridge 因为使用了js来定义方法 oc调用的模式 大坑 导致兼容 页面刷新 客户端外调用等情况 难以解决 因为需要 在交互方法之后进行判断 从而执行回调 而交互无
  • 越早加入刷脸支付将享受越多的政策

    刷脸支付已成为2019支付生态的风口 对于超市 便利店 企事业单位 停车场 餐厅等所有支付场景 越早加入刷脸支付 将享受越多的风口红利 现在 牵手掌优科技 便能快速接入刷脸支付 开拓全国刷脸支付市场 瓜分更多支付红利 支付宝 蜻蜓 采用了3
  • iOS 8 and iPhone 6 for web developers and designers: next evolution for Safari and native webapps

    本文原文为 iOS 8 and iPhone 6 for web developers and designers next evolution for Safari and native webapps 译者 罗罗磊磊 转载请注明 喜大普
  • python typeerror总结_错误总结

    1 TypeError The value of a feed cannot be a tf Tensor object Acceptable feed values include Python scalars strings lists
  • C++ 面试资料总结(全)

    C interview 总结了下C 相关的基础知识用于面试 大部分内容从网上搜罗而来 侵删 有些内容是根据自己理解写的 如有错误请指出哦 const 修饰变量 说明该变量不能被改变 修饰指针 分为指向常量的指针和指针常量 指向常量的指针值指
  • 考研复试数据库原理课后习题(十一)——并发控制

    并发控制 1 数据库中为什么要并发控制 并发控制能保证事务的哪些特性 数据库是共享资源 通常有多个事务同时在运行 当多个事务并发地存取数据库时就会产生读取和 或修改同一数据的情况 若对并发操作不加控制就可能会存取和存储不正确的数据 破坏数据
  • win7 easybcd 安装centos7.5 双系统

    之前用easybcd安装过Ubuntu 比较简单 腾出一些空间 添加引导项 然后就可以想安装普通的操作系统一样安装了 安装完之后 可以修改grub 让其可以同时引导Linux和Windows 这样就装好了 但是安装centos7有些地方不一
  • 12_MySQL之DCL语言

    文章目录 1 概述 2 用户管理 2 1 添加用户 2 2 删除用户 2 3 修改用户密码 2 4 查询用户 3 权限管理 3 1 查询权限 3 2 授予权限 3 3 取消权限 1 概述 DCL是数据库控制语言 用于执行权限的授予和收回操作
  • Unity的C#编程教程_34_for循环语句挑战2数苹果

    使用协同程序 协程 Coroutine 来分解循环程序 设计一个数苹果的程序 每隔1秒数一次 using System Collections using System Collections Generic using UnityEngi
  • 影院管理系统!个人做的,还有不完整的地方,源码我奉献了吧!

    影院管理系统 个人做的 还有不完整的地方 源码我奉献了吧 下载地址 http download csdn net detail liangrui1988 5753387
  • iOS 导航栏设置

    导航栏右侧的Done按钮怎么是蓝色的 导航栏右侧按钮大小设置 导航栏标题按钮样式设置 导航栏设置颜色 导航栏变白不显示颜色 iOS 13 之后使用新的API和类 UINavigationBarAppearance 来设置导航栏的标题大小 颜