Men的博客

欢迎光临!

0%

SwiftUI学习

1.SwiftUI 中使用 UIView 子类,需要将其他 view 包装在遵循 UIViewRepresentable 协议
UIViewRepresentable 协议需要实现两个方法:
makeUIView(context:) 用来创建视图,
updateUIView(_:context:) 用来配置 view 并响应修改

2.可以用这个 coordinator 实现常见的 Cocoa 模式,例如代理、数据源以及通过 target-action 响应用户事件。SwiftUI 会在调用 makeUIViewController(context:) 方法之前调用 makeCoordinator() 方法,这样配置 view controller 时,我们可以访问 coordinator 对象。

容器都是有10个对象的限制

HStack水平布局容器、VStack垂直布局容器、ZStack层叠布局容器。
Group List

@Published修饰符属性 告知Swift随时关注这个变量的变化。如果发生任何变化,所有视图中使用了该变量的body都将更新。
@StateObject 是被创建他的View所持有的,也就是说,实例的生命周期是完全可控的,是同创建它的View的生命周期一样的。
@EnvironmentObject 在视图之间共享数据
@ObservedObject 修饰这个对象时,这个对象必须实现 ObservableObject 协议,然后用 @Published 修饰对象里属性,表示这个属性是可以被 SwiftUI 监听的
@State 关联View的状态,当@State修饰的属性改变时,对应的View会跟着刷新
@Binding 值的传递是属于值传递类型,使用@Binding修饰后属性传递就变成引用类型,适合用于子节点关系中

@ViewBuilder就是一个包含多个视图的闭包
在SwiftUI框架中,所有的容器视图都是使用@ViewBuilder来修饰最后一个参数,因此这些容器视图可以接受多个子视图作为参数。

UIViewRepresentable
UIViewControllerRepresentable
UIHostingController

报错问题:

key:loopeer_progress
@2131427644
@2131427644
ViewUtils-》inflateView

loopeer_empty -> @2131427640
loopeer_refresh