我终于决定从Objective-C转向Swift。我正在为我的客户创建一个视图布局系统,以使他们的应用程序在布局方面更加灵活,而不使用自动布局,因为他们希望远程设计屏幕,并且自动布局对他们来说过于复杂。我尝试使用结构体
和协议
来实现这一点,但发现它相当笨拙,所以我怀疑自己没有正确思考。
使用类,结构将如下所示:
class ViewModel {
var frame: CGRect = .zero
}
class ViewGroupModel: ViewModel {
var weight: Int = 1
var children:[ViewModel] = [ViewModel]()
}
class HorizontalViewGroupModel: ViewGroupModel {
}
class VerticalViewGroupModel: ViewGroupModel {
}
我尝试通过定义一个 ViewModel 协议和一个 ViewGroupModel 协议来解决它,但我发现这样会创建很多重复的属性。有更好的方法吗?在这种情况下使用类是否被认为是一种良好的实践?
编辑:如果不使用类可能更好,那么我正在寻找一种在结构体和协议方面给出具体解决方案的答案。
CGRect
可以完成您的模型所做的事情。 - Sulthan