Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Swift——SwiftUI(一) #87

Open
soapgu opened this issue Nov 18, 2021 · 0 comments
Open

Swift——SwiftUI(一) #87

soapgu opened this issue Nov 18, 2021 · 0 comments
Labels

Comments

@soapgu
Copy link
Owner

soapgu commented Nov 18, 2021

  • 导读

前面教程里面学习Storyboard方式来作为UI interface是感觉非常不适的。好在这不是一条唯一的路。SwiftUI是一个选择。这是苹果推出了全新的一个框架,也是官方力推的。所以可是适当拓宽下广度来和Storyboard做一个对比
限制:IOS13以上支持

  • 学习过程

主要从下面三个互动教程去体验SwiftUI

  1. 预览刷新快捷键

SwiftUI是支持实时预览的,有的时候倒入一个组件啥的可能预览需要手工刷新。在开发过程中预览还是很常用的。

记住

option + command + p

  1. 编辑操作控件

在代码编辑界面或者是预览界面都可以操作

command + 控件对象

图片

Show SwiftUI Inspector:编辑属性 Embed In *** :把当前部分代码块套上指定容器,HStack(横向容器)VStack(纵向容器)List(还没学应该和WPF的差不多吧) Extract Subview:把当前View部分导出一个子View,对于我们抽象优化界面代码很有帮助

重要概念

  1. modifier
    相当于属性修改,但是这里和其他系统不一样的是,modifier属于链式语法,每增加一个会产生一个新的对象
    另外操作顺序会对结果产生不同影响

  2. @State声明标记
    加个这个tag,变量就变成了双向绑定。
    使用的时候需要加上${name}

控件声明方法上也会指明需要绑定
如:slider的初始化 init(value: Binding, in: ClosedRange, onEditingChanged: (Bool) -> Void)

  • 一些心得体会

  • 体验过Storyboard以后对SwiftUI的操作体验绝对好评。操作体验直接追上WPF/Andriod
  • 第一次体验声明式语法,暂别标签式语法
    以前也界面就是html/aspx/xaml/xml
    整体体验都是大同小异,相对来说的xaml是最严谨的。
    这次体验了一把代码及界面,真的很香

其实以前写WPF的时候就有喜欢把代码放xaml还是cs的两种流派,这回swift直接统一了。
我个人觉得比较好的优点

  1. 用代码表达界面能力更加强大
  2. 函数式控件让界面代码更抽象更简洁。以前学习React的时候接触了函数式控件的语法就觉得不错,看来有殊途同归的趋势

另外Jetpack Compose的语法好像和SwiftUI一个思想,目前SwiftUI是走在前面了。以后学习Jetpack Compose应该会更快上手

@soapgu soapgu added the Swift label Nov 18, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant