【发布时间】:2018-01-04 17:24:24
【问题描述】:
我终于从 Objective-C 切换到 Swift。我正在为我的客户创建一个视图布局系统,以使他们的应用程序在布局上更加灵活,而不使用自动布局,因为他们想要远程设计他们的屏幕,而自动布局对他们来说太复杂了。我尝试使用structs 和protocols 来做到这一点,但我发现它非常笨拙,所以我怀疑我没有以正确的方式思考它。
使用类,结构如下:
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 协议来使用协议来处理它,但我发现它创建了很多重复(属性)。有更好的方法吗?在这种情况下使用类是否被认为是一种好习惯?
编辑:如果不使用类会更好,我正在寻找一个答案,它可以根据structs 和protocols 给我一个具体的解决方案。
【问题讨论】:
-
请注意,
CGRect已经完成了您的模型所做的工作。 -
@mag_zbc 仅仅因为你想使用库而改变设计是最糟糕的理由。
-
... 尤其是因为 Swift 4 在很大程度上淘汰了该库。
-
...问题中根本没有提到JSON数据处理。
-
...因为它不像 ObjectMapper 是处理 JSON 的唯一方法。