iOS利用UIPageViewController实现图片轮播图。
UIPageViewController不紧可以实现翻页效果,也可以实现水平滚动效果,用这个控制器实现轮播图效果,逻辑简单,而且是用系统自带的控制器实现,没有复杂的逻辑处理,如果用UIScrollView实现就会考虑复用,切换逻辑等等。
1,UIPageViewController 的UIPageViewControllerTransitionStyleScroll模式就是水平滚动模式。
2,UIPageViewController结合自定义视图,封装到一个自定义视图中YXCircleScrollImageView。
3,可以加载网络图片,网络图片带缓存。
4,使用简单:
CGRect frame = CGRectZero;
frame.size = self.localImageCircleView.frame.size;
__weak typeof(self) weakSelf = self;
YXCircleScrollImageView * view = [YXCircleScrollImageView circleScrollImageViewWithFrame:frame ImageNumber:^NSInteger(YXCircleScrollImageView *view) {
return 6; //图片数量
} ImageOrUrlAtIndex:^id(NSInteger index) { //图片或者图片URL
NSString * imageName = [@"inbar" stringByAppendingFormat:@"%ld_02",index];
return [UIImage imageNamed:imageName];
} ImageDefaultAtIndex:^UIImage *(NSInteger index) { //默认图片
return nil;
} SingleTapHandle:^(NSInteger index) { //图片点击回调
[weakSelf localCircleScorllImageViewClickAtIndex:index];
}];
UIPageViewController不紧可以实现翻页效果,也可以实现水平滚动效果,用这个控制器实现轮播图效果,逻辑简单,而且是用系统自带的控制器实现,没有复杂的逻辑处理,如果用UIScrollView实现就会考虑复用,切换逻辑等等。
1,UIPageViewController 的UIPageViewControllerTransitionStyleScroll模式就是水平滚动模式。
2,UIPageViewController结合自定义视图,封装到一个自定义视图中YXCircleScrollImageView。
3,可以加载网络图片,网络图片带缓存。
4,使用简单:
CGRect frame = CGRectZero;
frame.size = self.localImageCircleView.frame.size;
__weak typeof(self) weakSelf = self;
YXCircleScrollImageView * view = [YXCircleScrollImageView circleScrollImageViewWithFrame:frame ImageNumber:^NSInteger(YXCircleScrollImageView *view) {
return 6; //图片数量
} ImageOrUrlAtIndex:^id(NSInteger index) { //图片或者图片URL
NSString * imageName = [@"inbar" stringByAppendingFormat:@"%ld_02",index];
return [UIImage imageNamed:imageName];
} ImageDefaultAtIndex:^UIImage *(NSInteger index) { //默认图片
return nil;
} SingleTapHandle:^(NSInteger index) { //图片点击回调
[weakSelf localCircleScorllImageViewClickAtIndex:index];
}];
[self.localImageCircleView addSubview:view];
5,效果图
源码地址:点击打开链接 (可用cocoapods加入项目)