tigerAndBull / TABAnimated

A skeleton screen loading framework based on native for iOS. (一个由iOS原生组件映射出骨架屏的框架,包含快速植入,低耦合,兼容复杂视图等特点,提供国内主流骨架屏动画的加载方案,同时支持上拉加载更多、自定制动画。)
MIT License
3.38k stars 537 forks source link

第三方瀑布流CHTCollectionViewDelegateWaterfallLayout #179

Open fanyuexiang opened 3 years ago

fanyuexiang commented 3 years ago

使用了CHTCollectionViewDelegateWaterfallLayout实现瀑布流,结果crash,因为((UICollectionView *)target).dataSource = self.protocolContainer;这里protocolContainer没有遵守CHTCollectionViewDelegateWaterfallLayout协议,这种情况该怎么兼容

tigerAndBull commented 3 years ago

设置waterFallLayoutHeightSel

fanyuexiang commented 3 years ago

设置了,还是会停到CHTCollectionViewDelegateWaterfallLayout的断言里。 这里UICollectionView的layout是CHTCollectionViewDelegateWaterfallLayout,它需要遵守CHTCollectionViewDelegateWaterfallLayout协议。而在TABCollectionAnimated里面通过rebindDelegate把collectionView的delegate转为protocolContainer,这个protocolContainer无法遵守CHTCollectionViewDelegateWaterfallLayout协议

QQ20211018-163623@2x

tigerAndBull commented 3 years ago

这里规定参数顺序必须一致。瀑布流的方案大体上都是一致的,你可以改下接口参数的顺序

tigerAndBull commented 3 years ago

可以优化为参数自动调整,但是意义不是很大

Pengjun1993 commented 1 year ago

作者你好,我这边用了CHTCollectionViewDelegateWaterfallLayout实现的瀑布流,然后更改了代理方法实现了骨架。但是我目前碰到了一个问题,就是我的骨架cell高度会随我设置的高度来,但是里面的元素不会跟着高度变化而变化,只会按下标0的高度固定展示元素。 比如我cell上有一个UIView,我设置的高度是cell高度-20,那么假如下标0的cell高度为100,下标1的cell高度为200的话,这个UIView的高度也只会固定展示为80。请问这个是我写的有问题吗?