【发布时间】:2015-07-25 19:14:38
【问题描述】:
我是移动世界开发的新手,我的项目有一个架构问题:
自定义 UICollectionViewCell 的正确位置在哪里?
本能地我会把它放在 (V)iew 下。
编辑
我会这样使用它:
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
var customCell: CustomCell = collectionView.dequeueReusableCellWithReuseIdentifier(CustomCell.identifier, forIndexPath: indexPath) as! CustomCell
customCell.setupWithSomeOtherObject(..)
return customCell;
}
【问题讨论】:
-
它实际上取决于...如果单元不直接对 model 层执行任何操作,并且它由 controller中的另一个类填充> 层只显示值,然后它在 view 层上。如果您的单元直接连接到 model 层并直接对其进行更改,那么它更有可能在 controller 层上 - 但基本上
...ViewCell应该清楚仅在 view 层上。 -
@holex,真的。另一个问题是,直接在单元格中进行 model 更改是否真的正确..
-
@flashadvanced,这不是一个好的做法,因为如果 model 层被更新(出于任何原因),view 层不应该受到影响全部。如果你是一个项目的唯一工作人员,你可以相对快速地重新安排它,但是当你在一个团队中工作时,你的工作是管理 view 层,而你的队友的工作是模型层;在对不应直接连接的任何层进行简单更新后,您不想获得额外的工作(而您不想给任何人提供额外的工作)。那是经验和拙见。 :)
标签: ios objective-c swift model-view-controller