SDCycleScrollView实现自定义view的轮播(跑马灯效果)

宋昊然
2023-12-01

需求是一个跑马灯的效果

已知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

转载于:https://juejin.im/post/5a31d57a5188257dd5761725

 类似资料: