SwiftUI 设置底部TabBar(tabItem)
前言
xcode 13.2
ios 15.2
在OC、Swift 中底部是UITabBarController, 但是在SwiftUI中是设置tabItem
SwiftUI使用用 TabView 和 tabItem () 来创建 TabBar
导航视图非常适用于创建层次化的视图栈,让用户可以层层深入数据,但它们对于不相关的数据则不那么合适。 对于那种数据,我们需要用到 SwiftUI 的 TabView,它会在屏幕底部创建一排不带边框的按钮,每次点击不同的按钮显示不同的视图。
除了能让我们点击 tab 项切换视图,SwiftUI 还允许我们通过使用状态来程序化控制当前视图。这种方式需要以下几个步骤:
1、创建一个记录当前正在显示的视图的 @State 属性。
首先是一个记录当前 tab 的状态,把下面这个属性添加到 ContentView:
设置枚举,或者设置int数字都可以
2、把这个属性以 binding 的形式传给 TabView,以便它能够被自动跟踪,并告诉 SwiftUI 对应属性的每种值应该显示哪个 tab。
3、把TableView放到 NavigationView 下面
3.1、使下级页面不再显示底部tabItem
3.2、后续push或当前页面不用再设置NavigationView,(如果设置,会多出一个导航栏的高度)
3.3、设置底部背景色,否则底部是透明颜色
3.4、下面给出了TabView展示的两种方式
具体代码和展示如下
struct ContentView: View {@State private var selection: Tab = .studyenum Tab {case featuredcase list case study case mine}init() {UITabBar.appearance().backgroundColor = .gray //设置背景色,否则背景色为透明颜色}var body: some View {NavigationView { //整体设置,下级页面不会在出现底部tabbarTabView(selection: $selection) {CategoryHome().tabItem{//使用label 创建tabitem图文 Label("Featured", systemImage: "star") }.tag(Tab.featured)LandmarkList().tabItem{Label("List", systemImage: "list.bullet")}.tag(Tab.list)YLStudy().tabItem { //设置tabitem图文方法if self.selection == .study {Image("tabbar_study_select")} else {Image("tabbar_study")}Text("发现")}.tag(Tab.study)YLMine().tabItem {if self.selection == .mine {Image("tabbar_mine_select")} else {Image("tabbar_mine")}Text("我的")}.tag(Tab.mine)}.accentColor(.red) //设置文字默认选中颜色}}
}
SwiftUI 设置底部TabBar(tabItem)相关推荐
- uni-app 底部tabbar设置 底部tabbar样式
自己不努力,没人会帮你 小程序很常见的底部tabbar按钮该如何设置呢? Tabbar 1. 创建页面 2. 配置tabbar 3. tabbar样式修改 1. 创建页面 目录如下: pages - ...
- uniapp小程序底部tabbar图标大小设置
小程序底部tabbar图标大小设置 在uniapp中小程序的tabbar没有设置图标大小的属性,导致小程序在不同平台打开时图标大小显示的不一样,特别是在电脑微信打开小程序时,底部的图标就会特别大,使得 ...
- 小程序tabbar能放分包路径吗_微信小程序之如何自定义底部tabbar导航
我之前写一个微信小程序,保单万事通,有一个这样的功能 image.png 这个底部导航,如果用小程序自带的tabbar,根本无法实现,所有我想第2种方法来实现 微信小程序文档中,有一种这个方法,但是我 ...
- uni-app 微信小程序根据角色动态的更改底部tabbar
文章目录 1. 需求背景 1.1 源码下载 2. 问题前提及思路 3. 开始撸 3.1 设置 `tabbar.js` 配置不同角色不同的菜单 3.2 设置 `page.json` 3.3 vue 配置 ...
- 微信 设置底部导航栏
转 微信小程序设置底部导航栏目方法 2016年10月27日 10:58:06 阅读数:50830 标签: 微信小程序 收起 个人分类: 微信小程序 微信小程序底部想要有一个漂亮的导航栏目,不知道怎么制 ...
- 微信小程序底部tabBar配置
文章目录 什么是tabBar tabBar节点的配置项 配置tabBar选项的步骤 1. 新增tabBar节点 2. 新增list数组 3. 更改tabBar上文字被选中时的颜色 什么是tabBar ...
- vue底部跳转_Vue中底部tabBar切换及跳转
tabBar.vue文件,写法如下: {{item.title}} tabBar.vue 中 js export default { name: "Tabbar", data(){ ...
- 用mpx框架自定义小程序底部tabbar
小程序[mpx] 用mpx框架自定义小程序底部tabbar 参考小程序官方文档:自定义 tabBar. 1.项目根目录下app.mpx** 1).添加"custom":" ...
- 小程序底部tabbar加数字标
小程序底部tabbar悬浮数字标功能 实现效果如下: 大家都知道小程序的底部,是通过APP,JSON进行配置的,如果想要在下面的tabbar上面做手脚的话,网上搜索是找不到方法的,好多小白见到这种需求 ...
最新文章
- koa cluster 使用多进程
- 浅入深出之Java集合框架(上)
- Spring源码分析之SpringMVC的DispatcherServlet是如何处理Http请求的
- 以太坊虚拟机 EVM(4)分布式存储架构设计(FISCO BCOS为例)
- 车载中控桌面布局android,安卓车载导航桌面主题
- 群控云控SDK开发包(快速开发群控云控微信SCRM客服系统)
- 22讲MySQL有哪些“饮鸩止渴”提高性能的方法
- 敏捷开发日常跟进系列之三 故事板,看板
- java中怎么审阅图片_java – Crucible REST API:无法添加审阅者
- 标准单元库的corner简述
- 【JPA/ddl-auto】关于JPA下hibernate通过设置ddl-auto完成数据库自动创建表格
- JAVA解析stp格式模型_3D模型文件读写.Net SDK
- C#操作开机自启动(写进注册表)
- 兄弟连视频教程下载地址汇总-2014(转)
- 带有功利性的做一件事 ?
- 核磁共振、顺磁共振、磁共振成像这些原理你都了解吗
- 交付管理——怎样控制项目进度
- java-php-python-ssm计算机公共课程学习资源管理系统计算机毕业设计
- Revit中复合墙图层的规则和CAD识别翻模墙
- python中大批量m3u8文件合并总结
热门文章
- jumpstart-6.10.3安装指南
- 【181008】VC++猫捉老鼠游戏源代码
- 汇编语言:字符串加密
- android 主流机型排行榜,10月份Android热门手机机型Top 50排行榜
- 为什么我什么都不知道_我什么都不知道,但是还可以
- 【转】人际关系的书,我只推荐这三本,其它的根本就不用看了
- 智慧园区整体智能化管理平台规划方案
- java单数字随机抽奖特效_jquery输入数字随机抽奖特效的简单实现代码
- 微软的东西,你不要删.否则学我的,重装系统.
- Java包名的命名规则