iOS自定义导航栏-MLBNavigation

2023-11-18

为什么要做这个?
平时使用原生导航栏,处理返回手势的时候,自己做不到像QQ那样处理的很完美,虽然有很多大大写的有不错的框架,个人感觉有些框架太繁重,并且还是不能满足一些要求,所以做这个,很简单,需要的参考,大神绕道。

安装

下载demo,将MLBNavigation拖入项目中即可,或者cocopods安装。
pod search MLBNavigation 搜索不到,请先更新pod setup

pod 'MLBNavigation'

Github地址:https://github.com/longmaboy/MLBNavigation

 

使用方法

支持StoryBoard和纯代码使用
创建UIViewController的时候,直接继承MLBBaseController.h即可,详情可看demo
最好是自己创建一个BaseController继承我的的MLBBaseController,然后BaseController还可以做你想做的事情
若是你的导航栏很复杂,那直接隐藏导航栏,自己做一个导航栏就好。

需要做一些基础配置,不配置就使用我默认的
在AppDelegate.h中导入#import "MLBNavigation.h"设置初始化配置

```ruby

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

 

    MLBConfig *config = [[MLBConfig alloc] init];

    

    config.leftItemImg = @"MBack";

    config.titleFontSize = [UIFont systemFontOfSize:18];

    config.itemLeftSpace = 10;

    config.itemRightSpace = 20;

    [MLBConfigSingle single].config = config;

    return YES;

}

 

MLBConfig.h

@interface MLBConfig : NSObject

//左边返回item字体大小

@property (nonatomic, strong) UIFont *leftFontSize;

//控制器标题字体大小

@property (nonatomic, strong) UIFont *titleFontSize;

//右边item字体大小

@property (nonatomic, strong) UIFont *rightFontSize;

@property (nonatomic,   copy) NSString *leftItemImg;

@property (nonatomic, assign) CGFloat itemLeftSpace;

//最右边item右边距离

@property (nonatomic, assign) CGFloat itemRightSpace;

@property (nonatomic, strong) UIColor *naviBgColor;

@property (nonatomic,   copy) NSString *naviBgImg;

@property (nonatomic, assign) BOOL lineHidden;

@end

 

注意事项

因为原生导航栏被隐藏了,所以原生导航栏上的功能不能再使用,需要自己去实现
1、prefersLargeTitles大标题功能没法使用
2、UISearchController没法在导航栏上使用

 

使用过程中有任何问题,请issue我或者给我发邮件
751824643@qq.com

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iOS自定义导航栏-MLBNavigation 的相关文章

  • 海南大学软件工程原理835考研

    海南大学835考研 2023考研已经落幕 我从2022 05 2023 03 用了大概一年的时间 目前已被海南大学计算机科学与技术学院录取 下面来谈谈我的学习感想 希望能给大家带来帮助 对于专业课 我用的是张海藩的软件工程导论第六版 和史济
  • MySQL数据库中随机获取一条或多条记录

    在开发过程中遇到了一个问题 使用MySQL数据库 用SQL语句在表中随机获取一条或多条数据 看似简单 但是往深层研究的话还是很有深度的 查了好多资料 接下来给大家分享一下 1 随机获取单条数据 SELECT FROM table name
  • springboot学习(一)——helloworld

    以下内容 如有问题 烦请指出 谢谢 springboot出来也很久了 以前零散地学习了不少 不过很长时间了都没有在实际中使用过了 忘了不少 因此要最近准备抽时间系统的学习积累下springboot 给自己留个根 因为以前学过一些 这里就主要
  • IDEA学习(一)——IDEA的安装

    最近IDE从Eclipse转到了IDEA 抽时间熟悉了一下IDEA相关的东西 在此记录一下说不定可以帮到有需要的同学 我们就先从IDEA的安装说起吧 需要说明一点的是IDEA是比较吃内存的 所以在安装IDEA之前最好确认的内存不要太小 最好
  • JavaScript运算符

    1 JavaScript运算符 算数运算符 运算符也叫做操作符 通过运算符可以对一个或则多个值进行运算 并获取运算结果 算数运算符 加 可以对两个值进行加法运算 如果是两个字符串则进行字符串拼接 任何值和字符串做加法运算 都会先转为字符串
  • 数据结构如何计算复杂度

    在学习具体的数据结构和算法之前 每一位初学者都要掌握一个技能 即善于运用时间复杂度和空间复杂度来衡量一个算法的运行效率 通过算法所编写出的程序的运行效率 程序的运行效率具体可以从 2 个方面衡量 分别为 程序的运行时间 程序运行所需内存空间
  • 熵值法计算权重有异常值_熵权法评价估计详细原理讲解

    写在前面 熵权法也属于一种综合评价方法 没有主观性 可与前面几篇文章提到的方法联合使用 目录 一 熵权法概述 1 1 信息论基础 1 2 熵权法介绍 二 熵权法赋权步骤 2 1数据标准化 2 2 求各指标在各方案下的比值 2 3 求各指标的
  • 一篇关于LLM指令微调的综述

    深度学习自然语言处理 原创作者 cola 指令微调 IT 是提高大型语言模型 LLM 能力和可控性的关键技术 其本质是指在由 INSTRUCTION OUTPUT 对组成的数据集上以监督的方式进一步训练LLM的过程 它弥合了LLM的下一个词
  • 线程连接池

    第一种 Executors newCacheThreadPool 可缓存线程池 先查看池中有没有以前建立的线程 如果有 就直接使用 如果没有 就建一个新的线程加入池中 缓存型池子通常用于执行一些生存期很短的异步型任务 package tes
  • FFPlay视频播放流程

    背景说明 FFmpeg是一个开源 免费 跨平台的视频和音频流方案 它提供了一套完整的录制 转换以及流化音视频的解决方案 而ffplay是有ffmpeg官方提供的一个基于ffmpeg的简单播放器 学习ffplay对于播放器流程 ffmpeg的
  • 机器学习 day31(baseline、学习曲线)

    语音识别的Jtrain Jcv和人工误差 对于逻辑回归问题 Jtrain和Jcv可以用分类错误的比例 这一方式来代替 单单只看Jtrain 不好区分是否高偏差 可以再计算人类识别误差 即人工误差 作为基准线来进行比较 Jtrain与base
  • npm 常用指令介绍

    npm usage what is npm 实现js代码的复用 分享和管理 npm consists of three distinct components 1 the website 通过 www npmjs com 网址查找需要的 包
  • html 浇水动画,纯CSS3实现动画插件spinkit

    spinkit使用CSS3的特性实现多种动画效果 元素移动 放大缩小 翻转 进度条加载效果等等 使用了很多CSS3新的特性 是一个学习CSS3不错的网站 spinner width 30px height 30px background c
  • echarts自定义Y轴刻度及其颜色

    yAxis min 0 max 5 axisLabel color 999 textStyle fontSize 14 fontWeight 400 设置分段颜色 color function value console log 试试 va
  • 4399 C++笔试题

    1 写出一个函数 取到链表中倒数第二个节点 双链表 node getSec List mylist return mylist m tail gt m prev m prev为链表前指针 单链表 node getSec List mylis
  • 如何利用Jmeter从0到1做一次完整的压测?这2个步骤很关键!

    压测 在很多项目中都有应用 是测试小伙伴必备的一项基本技能 刚好最近接手了一个小游戏的压测任务 一轮压测下来 颇有收获 赶紧记录下来 与大家分享一下 希望大家能少踩坑 一 压测的时机 压测的时机很重要 如果时间选择不对 可能会做无用功 简单
  • 防止sigmoid和tanh激活函数溢出的C++实现

    引言 上一期 我们介绍了softmax函数的C 实现 但是考虑到sigmoid和tanh函数也是带 e e e的次幂 所以现在我们来考虑该函数的防止溢出实现 sigmoid函数 原理 该函数的公式为 1 1
  • 第一百三十六回 WillPopScope组件

    文章目录 概念介绍 使用方法 示例代码 我们在上一章回中介绍了下拉刷新组件相关的内容 本章回中将介绍 WillPopScope组件 闲话休提 让我们一起Talk Flutter吧 概念介绍 我们在本章回中介绍的WillPopScope组件是
  • 这篇文章讲清Python的7大学习路线(建议新手小白收藏)

    现如今铺天盖地都是来自学习Python的勇士 Python这个编程语言中最友好的语言早已不是高不可攀的状态了 无论是业余爱好 还是专职求学 学习Python的朋友都在依靠着自己的方法 勤勤恳恳的学习着 但是学习有方向 入门有方法 进阶更是需

随机推荐

  • python爬虫详解

    python爬虫详解 1 基本概念 1 1 什么是爬虫 网络爬虫 是一种按照一定规则 自动抓取互联网信息的程序或者脚本 另外一些不常使用的名字还有蚂蚁 自动索引 模拟程序或者蠕虫 随着网络的迅速发展 万维网成为大量信息的载体 如何有效地提取
  • Ubuntu安装腾讯会议提示不支持wayland

    Ubuntu安装腾讯会议提示不支持wayland sudo vim etc gdm3 custom conf 把 WaylandEnable false 的注释井号去掉 sudo service gdm3 restart 横屏重启后可用 u
  • jeesite实战(四)——用户权限

    系列文章目录 提示 这里可以添加系列文章的所有文章的目录 目录需要自己手动添加 例如 第一章 Python 机器学习入门之pandas的使用 提示 写完文章后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 系列文章目录 前言 一
  • 命名实体识别(NER)综述

    本文是中文信息处理课程的期末考核大作业 对于自然语言处理主流任务的调研报告 版权声明 本文为CSDN博主
  • aix 查询服务器型号,aix系统查询服务器的配置文件

    aix系统查询服务器的配置文件 内容精选 换一换 本章节指导用户在mdadm配置文件中添加新建RAID阵列的信息 例如设备名 UUID等 系统启动时 通过查询文件中配置的信息 启动运行可用的RAID阵列 本文以云服务器的操作系统为 Cent
  • GB/T 20984-2022《信息安全技术 信息安全风险评估方法》解读

    前言 近年来 信息安全风险评估工作逐步在国家基础信息网络及重要行业信息系统中普遍推行 信息安全风险评估是信息安全保障工作的基础和重要环节 日前 GB T 20984 2022 信息安全技术 信息安全风险评估方法 发布 将于2022年11月1
  • c++ 函数

    1 程序示例 include phc h include
  • 说说background属性

    一 前言 backgound 相信接触前端的人都已经很熟悉了 但是小白们都只是停留在background fff的层面上 那么今天作为小白的我要揭竿而起了 二 简述 用作 描述背景 的css属性 background是一系列背景属性的简写
  • MySQL数据库(面试必备)

    版权声明 本文为博主原创文章 遵循 CC 4 0 BY SA 版权协议 转载请附上原文出处链接和本声明 本文链接 https blog csdn net ThinkWon article details 104778621 文章目录 数据库
  • python绘制直方图根据不同分类_如何在python中绘制具有多个类别的直方图

    下面是一个使用Matplotlib中的 为每个箱子提供多个条的直方图示例 import numpy as np import matplotlib pyplot as plt length of flowers np random rand
  • 数据清洗:重复值识别和处理方法

    重复值识别 数据集中的重复值包括以下两种情况 数据值完全相同的多条数据记录 数据主体相同但匹配到的唯一属性值不同 示例如下 导入pandas库 import pandas as pd 生成重复数据 data1和data3完全相同 data1
  • idea设置鼠标自定义放大缩小代码字体问题

    快捷键 Ctrl Alt S 这是在设置IntelliJ IDEA 代码字体的快捷键设置缩小 怎么达到的了 就是ctrl 你的鼠标滑扭往下
  • 什么是编码,什么是解码。原理解读

    原文 http www cnblogs com luguo3000 p 3592562 html 编码问题一直都伴随着程序猿从不间断 刚开始学编程的时候好多次遇到编码问题 解 决了文件读取的编码问题 又遇到了网络编码问题 解决了网络编码问题
  • 进制数字的输入和输出

    写个程序 它读取一个整数并以二进制 八进制 和十六进制输出 以十六进制浮点数输出倒数 public class test1 public static void main String args 写个程序 它读取一个整数并以二进制 八进制
  • WS2812RGB灯的控制学习

    WS2812RGB WS2812 2811只需一根信号线就能控制灯带上所有led 多个灯带间可以通过串联轻松延长 在30hz的刷新频率下一个信号线能够控制至多500个led 原理 WS2812B是一个集控制电路与发光电路于一体的智能外控LE
  • 【区块链】从一笔交易看区块链运作流程

    出处 一笔交易从产生到完成的流程 搞懂区块链运作原理 可先区分出交易 Transaction 与区块 Block 两个部分 这里我们分别从区块链中一笔交易产生到完成验证的流程 以及图解一个区块 来了解区块链的运作原理 并进一步拆解5大区块链
  • android:ems

    android ems 12 设置TextView或者Edittext的宽度为12个字符的宽度 说明该控件最多只能显示12个字符 超出的部分将不显示
  • 使用el-table对排序进行回显

  • TypeScript 交叉类型(intersection type)

    在TS中和联合类型 union type 对应的还有交叉类型 intersection type 交叉类型的出现主要为了组合多个对象类型 object type 因为相对于interface object type没法继承 那么就可以通过u
  • iOS自定义导航栏-MLBNavigation

    为什么要做这个 平时使用原生导航栏 处理返回手势的时候 自己做不到像QQ那样处理的很完美 虽然有很多大大写的有不错的框架 个人感觉有些框架太繁重 并且还是不能满足一些要求 所以做这个 很简单 需要的参考 大神绕道 安装 下载demo 将ML