SwiftUI入门

摘要

这篇分享的内容是关于SwiftUI的一些知识,主要分为以下几个方面:SwiftUI的概念和用法;WWDC 20大会上对swiftUI的更新介绍;SwiftUI在开发应用中的优缺点分析以及它和我们目前开发中使用的UIKit的比较;SwiftUI的发展前景等。


前景

从以下数据可以看出,未来swift将是iOS开发的唯一选择,越早进行相关的迁移工作会对未来公司的发展越有利:

  • 从 WWDC17 后 苹果已经不再使用 Objective-C 做 Sample Code 演示
  • https://developer.apple.com/不再更新Objective-C 相关的文档
  • WidgetKit 是 SwiftUI only
  • App Clips 10M的包大小, SwiftUI 是最合适的框架
  • 开源社区逐步放弃 Objecive-C 如 Lottie

SwiftUI介绍

SwiftUI是Apple在WWDC19上提出来的一个基于Swift编程语言,Xcode编译器的声明式的布局引擎,具有良好的跨平台特性,可以为所有Apple平台上的应用编写界面,并且支持同步预览,可视化编辑等功能。

基础概念

swiftUI控件

Text:展示静态文本内容的控件

Image:展示图片的控件

HStack,VStack,Zstack:用来进行控件的不同排列,包括水平,垂直和subviews

struct ContentView: View {
    var body: some View {
        VStack {
            Image("chilkoottrail")
                .frame(width: 300, height: 300, alignment: .center)
                .clipShape(Circle())
                .overlay(
                    Circle().stroke(Color.white, lineWidth: 4))
                .shadow(radius: 10)
            Text("chilkoottrail")
                .font(.title)
        }
    }
}

List:list是swiftUI中的一个列表容器,实现的效果类似于UITableView,为我们提供一个可以滚动显示数据的表格。

NavigationView:为我们的界面顶部提供一个导航视图,被navigationView包裹起来的组件都会处于一个视图栈中,可以进行页面的push和pop切换,一般会有三个控件和navigationView结合使用:

  • navigationLink:可以将一个新的视图推进视图栈中,跳转的目标界面需要用到navigationLink来设置。功能类似于pushViewController
    struct ContentView: View {
        var body: some View {
            NavigationView {
                NavigationLink(destination: Detail()) {
                    Text("haha")
                }
                .navigationBarTitle("ded", displayMode: .inline)
                .navigationBarItems(leading: Button("lead"){})
            }
        }
    }

    我们只需要给NavigationLink提供跳转的目标界面和需要点击的控件,其他的NavigationLink会自己完成,虽然Text是一个静态的文本控件,但是这里NavigationLink给他提供了点击的能力。

  • navigationBarItems:用来设置导航栏的左右按钮
  • navigationBarTitle&#x
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值