美文网首页
iOS Storyboard中cell的复用(相同的cell用在

iOS Storyboard中cell的复用(相同的cell用在

作者: 圆脸黑猫警长 | 来源:发表于2019-03-11 12:01 被阅读0次

一个项目中UI设计往往相似,比如商品列表和商品搜索结果列表很可能就是同一个样式,但是,在storyboard中会放置两个viewcontroller。比如都使用tableView,那么如何重复使用相同的cell在不同viewcontroller上呢?

这个操作有点秀.jpg

方法:复制粘贴UI,子类继承显示。(用着一时爽,一直用一直爽)。

具体步骤,以tableview为例

步骤1:

复制一个cell到新的tableview上(包含所有UI内容)

步骤2:

创建一个子类继承与原来的cell类。

步骤3:

新的cell的class类型设置为此,reuseid 一样。

步骤4:

将新的子类使用相同名称的连线和UI进行绑定。(复制父类的,子类中重新连线即可,使用同一个名字进行连线将大大方便后续的操作。)

至此,已经完成的重用。一般说来cell都会有绑定的model,会重写setModel 方法,然后在其中处理数据,完成UI的显示。步骤4中使用同一个名称即可做到子类中一行代码都不写,就能正常使用的效果。

啊,真香~~
写在最后:

1.关于原理的一点解释:storyboard中加载都是通过initwithcoder的方式(其本质是文件加载),所以如果只设置cell的class是不能加载出UI的,因为class中没有UI,UI绑定在原始的那个cell的storyboard中,而不是class中。

2.为什么什么都不用写就可以完正常的赋值和展示呢?
子类有父类属性这个是没有问题的,model自然可以进行赋值。连线为什么不行,原因如1中所述,连线在子类中是nil,所以必须重新复写父类属性以完成连线,这样子类中才能正常使用。

相关文章

网友评论

      本文标题:iOS Storyboard中cell的复用(相同的cell用在

      本文链接:https://www.haomeiwen.com/subject/clyvpqtx.html