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

IOS 17 基于UITabBarController实现首页TabBar

实现方式

创建首页MainController继承自UITabBarController就可以实现Tabbar效果。

实现效果

创建几个子控制器

创建子控制器 DiscoveryController,VideoController,MeController,FeedController,RoomController,继承自BaseLogicController;BaseLogicController封装 查看文章 IOS 11 通用Base控制器封装

//
//  DiscoveryController.swift
//  MyCloudMusic
//
//  Created by jin on 2024/8/27.
//import UIKitclass DiscoveryController: BaseLogicController {}

其余自控制器实现同DiscoveryController。

创建MainController 

MainController继承自UITabBarController

//
//  MainController.swift
//  主界面
//
//  Created by jin on 2024/8/20.
//import UIKitclass MainController: UITabBarController {override func viewDidLoad() {super.viewDidLoad()//选中高亮颜色tabBar.tintColor = .primaryColortabBar.isTranslucent = true//添加子控制器addChildController(DiscoveryController(), R.string.localizable.discovery(), "Discovery")addChildController(VideoController(), R.string.localizable.video(), "Video")addChildController(MeController(), R.string.localizable.me(), "Me")addChildController(FeedController(), R.string.localizable.feed(), "Feed")addChildController(RoomController(), R.string.localizable.live(), "Live")}/// 添加子控制器func addChildController(_ target:UIViewController,_ title:String,_ imageName:String) {//标题target.tabBarItem.title = title//默认图片target.tabBarItem.image = UIImage(named: imageName)//选择后图片target.tabBarItem.selectedImage = UIImage(named: "\(imageName)Selected")//选择后文本颜色target.tabBarItem.setBadgeTextAttributes([.foregroundColor:UIColor.colorPrimary], for: .selected)addChild(target)}
}

编译能够正常显示首页Tabbar效果。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 在URL链接中指定浏览器跳转到PDF文件的指定页码
  • python计算机视觉——第四章 照相机模型与增强现实
  • OpenCV绘图函数(8)填充凸多边形函数fillConvexPoly()的使用
  • 基于 Householder 变换的 qr 分解 算法与源码实现
  • sdk监控平台
  • 14.JS学习篇-CSR和SSR
  • golang并发编程——概述
  • sql中exist和in的区别
  • 240828-Gradio结合Html+Css+Javascript制作年历
  • Open3D编译安装
  • 同人小游戏之斗罗大陆3
  • 【STM32】IIC
  • es集群详解
  • IDEA导入第三方jar包, 并在Maven中打包该jar包
  • 医疗数字化转型数据中台架构方案(一)
  • 【Leetcode】101. 对称二叉树
  • Git 使用集
  • Hexo+码云+git快速搭建免费的静态Blog
  • Invalidate和postInvalidate的区别
  • JS变量作用域
  • React的组件模式
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 百度小程序遇到的问题
  • 创建一个Struts2项目maven 方式
  • 从输入URL到页面加载发生了什么
  • 回流、重绘及其优化
  • 力扣(LeetCode)965
  • 前嗅ForeSpider采集配置界面介绍
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 微服务入门【系列视频课程】
  • 一个SAP顾问在美国的这些年
  • 做一名精致的JavaScripter 01:JavaScript简介
  • media数据库操作,可以进行增删改查,实现回收站,隐私照片功能 SharedPreferences存储地址:
  • MPAndroidChart 教程:Y轴 YAxis
  • PostgreSQL之连接数修改
  • scrapy中间件源码分析及常用中间件大全
  • 函数计算新功能-----支持C#函数
  • ​学习笔记——动态路由——IS-IS中间系统到中间系统(报文/TLV)​
  • # 利刃出鞘_Tomcat 核心原理解析(七)
  • # 数据结构
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (3) cmake编译多个cpp文件
  • (9)目标检测_SSD的原理
  • (C++17) std算法之执行策略 execution
  • (C语言)字符分类函数
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (附源码)springboot优课在线教学系统 毕业设计 081251
  • (十八)三元表达式和列表解析
  • (转)可以带来幸福的一本书
  • (轉貼)《OOD启思录》:61条面向对象设计的经验原则 (OO)
  • (自用)交互协议设计——protobuf序列化
  • .gitattributes 文件
  • .net core 6 集成 elasticsearch 并 使用分词器
  • .NET Core跨平台微服务学习资源
  • .NET Reactor简单使用教程