SwiftUI 高级技巧之iOS View Code:保持流水线封装的解决方案,在一些计算属性中声明数据(教程含源码)

这篇教程介绍了如何在SwiftUI中解决视图编码的封装问题。通过创建基类和数据模型,实现了视图层次结构和约束的封装,确保UI更改仅在初始化时触发,遵循SOLID原则。文章详细讲解了创建基类、定义层次结构数据模型以及处理约束和附加配置的过程。
摘要由CSDN通过智能技术生成

由于如果协议来自不同的模块或超类,视图编码的方法是内部的或公共的,所以总是有机会从外部调用其中一些方法,这意味着缺乏封装。考虑到 SOLID,永远不应该有一种方法可以在范围之外触发​​直接的 UI 更改。

public protocol ViewCodeProtocol {
    func buildViewHierarchy()
    func setupConstraints()
    func configureViews()
}

public extension ViewCodeProtocol {
    
    func applyViewCode() {
        buildViewHierarchy()
        setupConstraints()
        configureViews()
    }
    
    func configureViews() { }
}

幸运的是,对此有一个简单的转变,我们仍然依赖超类来定义一些可覆盖的行为。

为您的视图创建一个基类

首先,让我们记录一下我们过去是如何创建管道的。我们有三种方法:一种用于构建层次结构,第二种用于约束,第三种用于附加配置。我们希望在不同的地方定义或查看数据,并在初始化视图后触发管道。让我们创建一个新的基类,我们将在其中将所有任务集中在一个初始化程序中:

public class BaseView: UIView
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值