【TabBar嵌套Navigation案例-自定义tabBar-封装 Objective-C语言】

news2024/11/13 12:09:47

一、再来说一个自定义tabbar的问题啊,

通知

1.首先呢,这个tabbar,看起来好像效果是实现了,没有什么问题,但是说,从业务逻辑上来讲的话,这样做,是不太好的,

1)首先,我们去创建啊,我们自定义的一个UIView,

通知

UIView里边,有很多子控件,那么这个子控件,应该是写在你这个View里边的,你创建的时候,应该是在View里边的,不应该在外面,在Controller里面去创建控件,这样做是不对的,包括你的点击事件啊,都应该抽出来一个,这个tabbar啊,这个UIView,

通知

2)我们应该自定义一个UIView,然后把里面的一部分代码,都应该写到这个UIView里面,才行,理解我的意思吗,就跟那个tabbarController一样啊,你去加载,你给tabbarController去加载子控制器,

通知

那么,你创建子控制器啊,加载子控制器啊,这些话,都应该写在tabbarController里边,

下面也是一样的,你给tabbar,给我自定义的某一个UIView,去添加5个btn,那么,这5个btn的创建,也应该在这个UIView里面,

2.所以,这个时候呢,我们新建一个View,

在主框架的View文件夹里面,我们去新建一个UIView,

通知

继承的是UIView,叫做HMTabBar,

那么,接下来啊,我们就要抽啊,抽,实际上,说白了,就是把这里边的这一坨代码,剪切到这个HMTabBar里边,

通知

你抽东西的时候,怎么着去抽,你假如说,有一个功能,可能抽的时候,感觉不好写,那么,你就先用这种方式,实现了,

通知

然后,再一个一个往里去搬,

1)我们需要先把这个btn的创建,放到这个里边,

通知

先来看看,btn都做了哪些事情,我们看看这坨代码,都做了哪些事情,

1)首先,我创建了5个btn,

2)然后,每一个btn,给它设置了frame,

通知

这一段儿代码,就是在设置frame,所以这一段儿代码,我应该写在layoutSubview里面,

因为我要设置它子控件的布局,

所以呢,我现在,第一,这个btn,我设置了frame,

2)然后,第二件事儿,我给它设置了图片,

通知

3)第三件事儿,我监听了这个btn,

通知

4)第四件事儿,点击这个btn的时候,我把控制器给切换一下,

通知

我现在做了这四件事儿,

然后呢,我一件一件的往里放,就行了,

1)首先,我创建btn的时候,这一句话,应该写在tabbar里边,

通知

我现在呢,要给tabbar写一个方法,只要我一调这个方法,它就能够帮我自动的创建btn、自动的帮我去设置图片、自动的帮我去监听这个btn,

都在这一个方法里边去写,

这个时候,我现在在HMTabBar.h里边,先来写这么一个方法,

- (void)addButtonWith

我现在要把这两张图片,一块儿去传过来,

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1956994.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

kubernetes管理GUI工具Lens

从github上可以知道,lens的前端是用electron做的客户端工具,打开安装路径你会发现kubectl.exe,没错,就是你经常用的kubectl命令行的客户端工具。kubectl本来就能输出json的数据类型,集成前端更方便了。看到这里你是不是发现&#…

MoE技术揭秘——混合专家模型的计算奥秘

MoE技术揭秘——混合专家模型的计算 MoE技术的类比 你可以把MoE技术比作一个“智能团队”,团队中的每个成员(专家)都有自己擅长的领域。当面对一个问题时,只有擅长此问题的成员才会参与解答,这样既提高了效率&#xff…

如何开发属于自己直播平台的主播美颜SDK?

本篇文章,笔者将从需求分析、技术选型、开发流程等方面进行详细讲解。 一、需求分析 在开发美颜SDK之前,首先需要进行详细的需求分析。主要包括以下几个方面: 1.美颜功能的具体需求:确定美颜效果,包括磨皮、美白、瘦…

懂个锤子Vue 项目工程化扩展:

Vue项目工程化扩展📶: 前言:当然既然学习框架的了,HTMLCSSJS三件套必须的就不说了: JavaScript 快速入门 紧跟前文,目标学习Vue2.0——3.0: 懂个锤子Vue、WebPack5.0、WebPack高级进阶 涉及的…

4418 4412 的 bl1 , bl2 的理解

之前一直 对 三星的 bl1 , bl2 不是很理解。 网上的资料 我自己的 测试: 我在 4418 的源码中没有找到这个 2ndboot 文件夹。

仅花3小时搭好一套仓库管理系统,老板看了直呼哇塞

公司仓库管理长期效率低下,让团队头疼不已。没想到,一位同事凭借自学的零代码系统搭建技能,仅用时3小时就搭建出了一套完善的仓库管理系统,不仅操作简便,还大幅提升了工作效率。老板亲自验收后连连夸赞直接给了1w奖金&…

Unity Yaml

资料 UnityYaml 项目设置 选择用于存储序列化资产的格式 Project Settings->Asset Serialization->Mode Force Text 序列化为文本文件,例如场景文件 保存为yaml格式 方便查看;版本控制时文本文件比二进制文件更容易合并Force Binary 序列化为二进制文件&a…

图片格式怎么转换?这几种图片格式转换方法简单又高效

图片已成为我们日常生活与工作中不可或缺的一部分。然而,不同平台和应用往往对图片格式有着特定的要求,这就使得图片格式的转换成为了一项必备技能。下面给大家分享5种能够简单高效的转换图片格式方法,快来一起学习下吧。 方法一:…

隆尧县“隆品佳尧”区域公用品牌发布推介会暨地标之都七月选品会成功举办

在国家乡村振兴战略与农业现代化建设的大背景下,隆尧县凭借其得天独厚的地理优势和丰富的自然资源,正在成为区域经济与品牌建设的一颗新星。为了进一步推动隆尧县的农业发展和乡村建设,由隆尧县商务局指导、隆尧县电子商务公共服务中心主办的…

GD 32独立看门狗

前言 ... 独立看门狗简介 独立看门狗定时器(FWDGT)有独立的时钟源(IRC40K)。因此就算是主时钟失效了,它仍然能保持工作状态,这非常适合于需要独立环境且对计时精度要求不高的场合。 当内部向下计数器的计数值达到0,独立看门狗会产生一个复位…

迎接新时代:通过Web Distribution分发您的iOS应用

背 景 《数字市场法案》(Digital Markets Act,DMA)是欧盟委员会于2020年11月提出的旨在规范大型科技公司行为的立法提案,于2022年3月8日由欧盟议会和欧盟理事会正式通过,并于2022年11月1日正式生效,主要条…

面试题:MySQL 索引

1. 谈一下你对于MySQL索引的理解?(为什么MySQL要选择B+树来存储索引) MySQL的索引选择B+树作为数据结构来进行存储,使用B+树的本质原因在于可以减少IO次数,提高查询的效率,简单来说就是可以保证在树的高度不变的情况下存储更多的数据: IO效率的提高:在MySQL数据库中,…

最细哈希表相关的力扣题和讲解和Java、C++常用的数据结构(哈希法)来源于代码随想录,十分感谢这位我失散多年的老师!!

20240725 一、什么时候适用什么样的结构。1.java中1.1 HashSet:1.2 TreeSet:1.3 LinkedHashSet:1.4 HashMap:1.5 TreeMap:1.6 LinkedHashMap:1.7 总结 2. c中2.1 std::unordered_set:2.2 std::s…

mysql 的MHA

mysql 的MHA 什么是MHA 高可用模式下的故障切换,基于主从复制。 单点故障和主从复制不能切换的问题。 至少需要3台。 故障切换过程0-30秒。 vip地址,根据vip地址所在的主机,确定主备。 主 vip 备 vip 主和备不是优先确定的&#xff…

机器视觉13镜头

镜头作用: 一端收集物体的光线,并将光线在另一端汇聚为实像,并投影到接收面的物体。 此时,汇集光线的点称为焦点,镜头中心到焦点的距离称为焦点距离。 当镜头为凸镜时,焦点距离将根据镜头的厚度&#xf…

必看!CRM系统选型指南:10款CRM系统对比,你该用哪个?

不同行业、不同规模、不同业务模式的企业,对CRM系统的需求千差万别。 如何在众多选择中挑选出最适合自己企业的那一款,成为了许多管理者面临的难题。因为,如今的CRM系统成为了企业提升竞争力、深化客户关系、优化业务流程的关键工具。 因此…

【嵌入式】C51 和标准 C 语言的关键字对比详解

目录 C51 和标准 C 语言的关键字对比详解1. 概述2. C51 和标准 C 语言的关键字对比2.1 关键字对比表2.2 对比表详细解释2.2.1 C51 特定关键字2.2.2 标准 C 语言关键字 2.3 C51 特定关键字2.4 标准 C 语言关键字 3. 示例详细解释3.1 C51 特定关键字bitsfrsbitdataidatapdataxdat…

基于JSP的水果销售管理网站

你好,我是计算机学姐码农小野!如果有相关需求,可以私信联系我。 开发语言: Java 数据库: MySQL 技术: JSP技术 工具: 未在文档中明确指出,可能包括但不限于IDEs(如Ec…

.NET 相关概念

.NET 和 .NET SDK .NET 介绍 .NET 是一个由 Microsoft 开发和维护的广泛用于构建各种类型应用程序的开发框架。它是一个跨平台、跨语言的开发平台,提供了丰富的类库、API和开发工具,支持开发者使用多种编程语言(如C#、VB.NET、F#等&#xf…

盘点2024年网上很火的4个语音识别转文字工具。

语音识别转文字是一项非常实用的技术,可以帮助我们在会议记录中省去手动记录,在采访中迅速得到文字稿,在学习中快速生成课堂笔...运用十分广泛。但是很多人不知道要怎么转换,在这里我便给大家介绍几款效率非常高的语音转文字的工具…