需求是一个跑马灯的效果
效果已知SDCycleScrollView的轮播实现是基于Collectionview的。 如果我们想自定义实现轮播展示的内容就可以自定义一个CollectionviewCell 。让 SDCycleScrollView 的 Collectionview 使用我们自定义cell。
实现步骤
对修改pod源码不赞成的同学可以return。我个人是把SDCycleScrollView从pod中提出来了。
1、在 SDCycleScrollView.h中添加一个block:
/** 自定义collectionViewCell */
@property (copy) UICollectionViewCell * (^cellForRowAtIndexPathCompletion)(UICollectionView *tableView, NSIndexPath *indexPath);
2、在SDCycleScrollView.m UICollectionViewDataSource 的获取UICollectionViewCell的代理方法中添加代码
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
if (_cellForRowAtIndexPathCompletion) {
return _cellForRowAtIndexPathCompletion(collectionView,indexPath);
}
SDCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:ID forIndexPath:indexPath];
///....
3、把SDCycleScrollView 的 collectionView 暴露出来 。把mainView属性移动到SDCycleScrollView.h中
@property (nonatomic, weak) UICollectionView *mainView; // 显示图片的collectionView
4、给block属性赋值
总结
实现需求效果有点投机取巧,但是缩短了开发时间。才疏学浅 如果文章有不正确/不可取的地方, 望大神指正。
iOS 开发交流群:479663605
网友评论