SwiftUI
SwiftUI 学习记录
不在犯二的IT男
码农一个,进修中!
展开
-
SwiftUI List那些事(十一)List 修改显示样式(ListStyle)
可以通过protocol ListStyle 修改List样式//// ListStyle.swift// List//// Created by lsr on 2021/9/22.//import SwiftUIstruct ListStyle: View { @State var dataItems = dataSourceWithClass; var body: some View { List{ ForEach(da原创 2021-09-24 09:34:33 · 2173 阅读 · 0 评论 -
SwiftUI List那些事(十)List 分组
首选要定义数据源对象,创建班级和学生结构体,在创建个分组数据源结构体//// ListDataSource.swift// List//// Created by lsr on 2021/9/16.//import SwiftUI//班级struct StudentClass:Identifiable ,Hashable { let name: String let id = UUID()}//创建学生对象struct StudentModel:Iden原创 2021-09-23 09:35:44 · 857 阅读 · 0 评论 -
SwiftUI List那些事(九)List 添加点击事件
struct ListRowTap: View { @State private var showAlert = false; @State private var tapValue = "" var body: some View { List(dataSource){ item in ListRow(item: item).contentShape(Rectangle()).onTapGesture { self原创 2021-09-22 14:46:11 · 2016 阅读 · 0 评论 -
SwiftUI List那些事(八)List 添加 Header
首先我们要创建一个展示Head视图的View代码如下import SwiftUIstruct ListHead: View { var body: some View { VStack{ Text("三年二班").position(x:60, y: 150).font(.system(size:24 , weight:.bold)).foregroundColor(.white) }.background(Image("head").re原创 2021-09-18 14:11:49 · 1069 阅读 · 0 评论 -
SwiftUI List那些事(七)List 去掉分割线
上几篇文章,没有把列代码抽出来,无法复用,我们先创建个ListRow 来吧Row UI代码解耦出来//// ListRow.swift// List//// Created by lsr on 2021/9/17.//import SwiftUIstruct ListRow: View { var item:StudentModel var body: some View { HStack(spacing:15, content: {原创 2021-09-18 13:20:06 · 1057 阅读 · 0 评论 -
SwiftUI List那些事(六)给 List 多选功能
多选功能跟单选功能只有selection参数不同,单选设置一个字符串或者对象 多选换成集合即可struct ListMultiple: View { //多选 @State private var selectModels = Set<StudentModel>() //单选 //@State private var selectModel:StudentModel?; @State private var dataItems = dataSource原创 2021-09-17 13:24:04 · 957 阅读 · 0 评论 -
SwiftUI List那些事(五)给 List 单选功能
我们可以 EditButton() 编辑模式情况下 设置selection参数, 记录选择的值,同时还需要设置列表的id参数 List(dataItems,id:\.self, selection:$selectModel) { item in }.navigationTitle("人员管理").toolbar { EditButton() 完整代码如下struct SingleSelect: View { @State private va原创 2021-09-17 12:57:10 · 1199 阅读 · 0 评论 -
SwiftUI List那些事(四)给 List 添加列移动功能
要进入移动模式,必须要进入列表编辑模式,只需要添加 EditButton() 就好进入编辑模式第一个步要在导航栏里把这个加上 EditButton() List{ }.navigationTitle("人员管理") .toolbar { EditButton() }加完后导航栏上面会出现一个Edit 按钮第二步调用 ForEach 的 onMove() 方法 @inlinable public func onMove(perform action: ((IndexSet原创 2021-09-16 19:25:50 · 419 阅读 · 0 评论 -
SwiftUI List那些事(三)给 List 添加滑动删除
一开始我还以为跟tableview 一样删除属性在List 里,我在文档中搜索delete 并没找到相关删除方法,看文档找到了ForEach 里面包含了onDelete。onDelete() 是作为 ForEach 的修饰符存在的,而不是直接用于 List 的修饰符。这是因为列表可以包含静态行。核心API ForEach(dataItems) { item in xxx}.onDelete(perform:xxx)我们把上一章节的代码稍微改动下,使用ForEach 加载Row//// C原创 2021-09-16 16:34:01 · 1392 阅读 · 0 评论 -
SwiftUI List那些事(二)给 List 添加跳转事件
列表通常用来展示概览信息,然后点击进入详情。我们可以给List 添加给导航控制视图 NavigationView ,Row 添加NavigationLink 添加跳转目标地址谷歌翻译文档使用 NavigationView 创建基于导航的应用程序,用户可以在其中遍历视图集合。用户通过选择您提供的 NavigationLink 导航到目标视图。在 iPadOS 和 macOS 上,目标内容显示在下一栏中。其他平台将新视图推送到堆栈上,并使用特定于平台的控件(如后退按钮或滑动手势)从堆栈中删除项目。我们原创 2021-09-16 10:34:11 · 938 阅读 · 0 评论 -
SwiftUI List那些事(一)初识List
List 是使用最频繁和最广的组件,之前oc版本 TableView 那些事系列通过访问量就可以看出这个组件的重要性,也打算写个swiftUI 系统博客创建工程创建一个新项目选择App给工程 启个名称,选择其他配置环境如下图4 启动项目通过List 做个人员列表最后实现下过如下其他代码已经在上图了。下面讲解下实现的思路和代码列表其实可以理解为有多个列(row)组装而成布局可以抽象成三个盒子,最左边个盒子放头像,右边垂直盒子放两个标题,最外面的盒子(row)横原创 2021-09-15 19:26:13 · 397 阅读 · 0 评论