iOS UIScrollView无限轮播(二)

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

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

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

ScrollV.h

@protocol GreenInterfaceDelegate 
// 让协议方法带参传值
/**点击图片传递的值*/
- (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无限轮播(二))