针对一个TableView的多种类型cell的这种常见需求,此demo提供一种新的思路:外部(Controller)不需要知道具体cell种类,只需要调用一个方法配置即可;另外,针对view和model的耦合,采用分类(Category)来解耦.具体思路看README
有时候,一个页面可能出现多种cell,看到网上一个朋友的实现思路非常优雅,自己摸索着总结了一下:
通过协议对多个cell进行约束,通过让cell遵循同一个协议并实现协议方法,让外部达到统一配置效果。所以一般标准的cell配置方法一般就是将model直接传给cell,酱紫就造成了耦合,所以,外部的赋值应该只是把参数传给cell,而不是整个model!
然而,我们的初衷是为了达到统一配置,也就是必须使用同一个方法对不同cell进行约束,这样才能看起来优(装)雅(逼),而每个cell他们长相各异,需要的参数也不同,所以就只能将整个model传进去。那么怎么解耦呢?
上面,通过协议约束的方式,已经能够成功实现统一配置,解耦的方式就可以用:分类(Category),但是分类这种方式使用过多据说会拖慢APP的启动时间,所以个人建议一般解耦还是不要太迷信用分类,但是针对这里除了用Category,我暂时还没想到其他好的办法 -------------------详情请看demo
记录一下,以后遇到此类需求可以套用这个demo的思路优雅的撸码~