美文网首页
看JXCategoryView源码之collectionView

看JXCategoryView源码之collectionView

作者: 梁森的简书 | 来源:发表于2020-09-28 14:59 被阅读0次
image.png
github地址:https://github.com/pujiaxin33/JXCategoryView

源码中的几个类

TitleViewController

继承自ContentBaseViewController

ContentBaseViewController

设置展示的VC和上方的分类视图显示的内容
添加子视图JXCategoryListContainerView

JXCategoryListContainerView

用来装所有的控制器
添加了一个JXCategoryListContainerViewController控制器
再在此控制器上添加一个UICollectionView,在此UICollectionView上添加子控制器的根视图(个人觉得用UICollectionView更好,有复用机制)

ListViewController

最终显示的控制器
遵守了JXCategoryListContentViewDelegate代理
实现了listView协议,返回自身的根视图。
(个人觉得不必再让我们自定义的VC遵守协议了,直接添加我们自定义的VC的根视图)

收获

疑问:怎么将自控制器放到_validListDict中的?

list = [self.delegate listContainerView:self initListForIndex:index];
    if ([list isKindOfClass:[UIViewController class]]) {
        [self.containerVC addChildViewController:(UIViewController *)list];
    }
    _validListDict[@(index)] = list;

JXCategoryListContainerView通过代理实现的代理的方法

  • (id<JXCategoryListContentViewDelegate>)listContainerView:(JXCategoryListContainerView *)listContainerView initListForIndex:(NSInteger)index;
    返回一个控制器,然后将此控制器添加到_validListDict中。

我们需要做的

1.创建一个类似ContentBaseViewController的控制器用来设置JXCategoryTitleView对象
2.创建需要添加的所有自控制器

相关文章

网友评论

      本文标题:看JXCategoryView源码之collectionView

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