美文网首页程序员
iOS UIScrollView无限轮播(二)

iOS UIScrollView无限轮播(二)

作者: RogueYBJ | 来源:发表于2018-05-31 19:10 被阅读121次

    第二部分是把其他空间放到UIScrollView上去

    1.添加一个文本控制器。

    添加一个文本控制器可以自定义文本也可以直接加在imageBtn上(在这里我直接放在了imageBtn上)
    因为添加文本是生成控件所以在initWithFrame后面添加一个数组参数,
    ps:最好不要用其他方法里面添加。

    ScrollV.h
    
    @protocol GreenInterfaceDelegate <NSObject>
    // 让协议方法带参传值
    /**点击图片传递的值*/
    - (void) pushScrollVAction:(NSInteger ) valueTag;
    /**改变page传递的值*/
    - (void) pageNum:(NSInteger ) pageNum;
    @end
    
    
    //ImageArr图片的数组  titleArr标题数组
    - (instancetype)initWithFrame:(CGRect)frame andImageArr:(NSArray*)ImageArr andTitle:(NSArray *)titleArr;
    //点击page的用户交互
    -(void)pageContentOffset:(NSInteger)page;
    
    
    ScrollV.m
    
    //标题添加到每个imageBtn
                    UILabel * TitleLabel = [[UILabel alloc]initWithFrame:CGRectMake(0, CGRectGetHeight(imageBtn.bounds)-30, CGRectGetWidth(imageBtn.bounds), 30)];;
                    TitleLabel.text = titleArr[titleArr.count -1];
                    [self AddSublayerColor:TitleLabel];
                    [imageBtn addSubview:TitleLabel];
    
    //scrollV.contentOffset向前滑动一页
    -(void)Successful:(NSInteger)page{
        //协议的方法传递page
        [self.delegates pageNum:page];
    }
    //滑动效果减速结束后
    - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
        //协议的方法传递page
        [self.delegates pageNum:[self Dpage]-1];
    }
    
    //点击page的用户交互
    -(void)pageContentOffset:(NSInteger)page{
        [UIView animateWithDuration:0.5f animations:^{
            self.contentOffset = CGPointMake(CGRectGetWidth(self.bounds)*(page), 0);
        }];
    }
    
    

    2.添加一个分页控制器。

    这里用的是自定义的,因为用别人的可能达不到自己想要的效果。
    1.实例化分页控制器
    2.分页控制其的布局
    3.实现随着轮播图变化而变化
    4.实现点击小圆点是轮播图改变

    PageC.h
    //按钮的风格
    typedef NS_ENUM(NSInteger ,pageCBtnStyle) {
        pageCBtnStyleNome = 0,//方形
        pageCBtnStyleRound,//圆形
    //    pageCBtnStyleNome,
    };
    
     //1.实例化page通过传入的pageNum来确认创建几个自控制器
    - (instancetype)initWithFrame:(CGRect)frame andPageNum:(NSInteger)pageNum;
    
    //创建数组保存page
    @property(strong ,nonatomic)NSMutableArray * pageArr;
    //按钮风格
    @property(assign ,nonatomic)pageCBtnStyle Style;
    //按钮的大小
    @property(assign ,nonatomic)CGSize pageSize;
    //按钮的间隙和边距
    @property(assign ,nonatomic)NSInteger pageClearance;
    //按钮背景颜色
    @property(strong ,nonatomic)UIColor * pageColor;
    //按钮选中背景颜色
    @property(strong ,nonatomic)UIColor * pageHetColor;
    //按钮背景图片数组
    @property(strong ,nonatomic)NSArray * pageImage;
    //按钮选中背景图片数组
    @property(strong ,nonatomic)NSArray * pageHetImage;
    //当前页
    @property(assign ,nonatomic)NSInteger page;
    //block 的回调方法 点击返回当前页
    @property(nonatomic, copy)void(^updateUserInfoBlock)(NSInteger page);
    
    
    

    多的代码就不copy了
    说下心得吧:
    这个dome适用于各种类型,今本上都可以更改上面的东西
    属性什么的都齐全了,基本上可以用于很多操作。
    注释也全都写好了。
    效果图👇:


    lbt.gif

    UIScrollView无限轮播(一)
    GitHubDome

    亲!喜欢的话点个💗呗!关注一下互相探讨!

    相关文章

      网友评论

      本文标题:iOS UIScrollView无限轮播(二)

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