博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
苹果官方网站SwiftUI教程02
阅读量:3938 次
发布时间:2019-05-23

本文共 1352 字,大约阅读时间需要 4 分钟。

苹果官方网站SwiftUI教程02:

素材地址:

Building Lists and Navigation

  • 给app添加list展示View和界面跳转功能
    • 创建模型文件Landmark.swift
    • 导入landmarkData.json文件,另外写好json转换成类的文件:可以参考我项目中DataUtil.swfit文件 地址:
    • 上个项目中的contenView改名为LandmarkDetail文件
    • 新建LandmarkRow.swift.来显示单个row
    • 如果定义变量,那么previews中就需要向里面传值
    • 通过.previewLayout(.fix(width:xx,height:xx))修饰previews
    • Group{}可以显示多组row
    • 创建一个Landmark list
    • List{}or list(数据源){} 数据源需要带唯一的参数id-path
    • 如果数据源遵循 Identifiable协议,那么List数据源不需要带id参数,需要有id属性才能遵循此协议
    • Set Up Navigation Between List and Detail
    • NavigationView{} 嵌套 list
    • .navigationBarTitle(Text(“Landmarks”))添加修饰器,添加titie
    • 使用NavigationLink来进行界面跳转,navigationLink(跳转的目的地){//响应点击的控件}
    • 传递数据到子视图:将一些之前hard code 的数据使用变量来代替,通过调用时传入landmark数据,来动态更新。
      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eof07z2q-1581343800635)(img/SwiftUI02/%20%20-%20.png)]
    • 修改模拟器启动的第一个页面:
    • 修改动态的previews,设置多个previews,和previews的机型:
// 在 previews属性中    static var previews: some View {
// LandmarkList() // .previewDevice(PreviewDevice(rawValue: "iPhone SE")) ForEach(["iPhone SE", "iPhone XS Max"], id: \.self) {
deviceName in LandmarkList() .previewDevice(PreviewDevice(rawValue: deviceName)) .previewDisplayName(deviceName)// 添加设备名字 // You can experiment with different devices to compare the renderings of your views, all from the canvas. } }

转载地址:http://ujywi.baihongyu.com/

你可能感兴趣的文章
架构实践 - 3. 基于事件系统的demo
查看>>
架构实践 - 4. 架构设计之进程通信(独立构件风格)
查看>>
架构实践 - 5. 基于进程通信的demo
查看>>
sys/time.h 和 time.h的区别
查看>>
1、蓝牙概述
查看>>
2 系统架构师 - 知识框架
查看>>
Linux下 socket-tcp通信
查看>>
小米笔记本解决风扇异响
查看>>
Linux下 socket-udp通信
查看>>
Linux - 守护进程-1
查看>>
Linux - 守护进程-2
查看>>
syslog 和 rsyslog
查看>>
Linux下,write/read,recv/send, recvfrom/sendto的区别
查看>>
Linux - signal通信
查看>>
ubuntu下 rc.local的脚本不运行
查看>>
Linux下简单Makefile文件的编写
查看>>
linux下配置JDK JAVA环境
查看>>
解决Ubuntu 14.04 grub选择启动项10秒等待时间
查看>>
Python函数操作集锦之字符串测试、判断函数
查看>>
Python字符串操作集锦之字符串映射表
查看>>