iOS 开发中滑动视图的循环播放
来源:互联网 发布:power map for mac 编辑:程序博客网 时间:2024/05/21 04:21
滑动视图的实现过程:
代码如下:
.h文件:
#import <UIKit/UIKit.h>
@interface LoopView : UIView
@property (nonatomic,strong)NSArray *imageArray;
@end
.m文件:#import "LoopView.h"
@interface LoopView() <UIScrollViewDelegate> {
//定义一个定时器
NSTimer *_timer;
}
//滑动视图所需要的属性
@property (nonatomic,strong)UIScrollView *scrollView;
@property (nonatomic,strong)UIPageControl *pageControl;
@property (nonatomic,strong)UIImageView *leftImage;
@property (nonatomic,strong)UIImageView *middenImage;
@property (nonatomic,strong)UIImageView *rightImage;
@property (nonatomic,assign)NSInteger currentNum;
@end
@implementation LoopView
//初始化
- (instancetype) initWithFrame:(CGRect)frame {
if (self = [superinitWithFrame:frame]) {
}
returnself;
}
- (void)setImageArray:(NSArray *)imageArray {
_imageArray = imageArray;
//初始化控件
[selfcreatView];
}
#pragma mark - 初始化控件
- (void)creatView {
// 设置宽高
CGFloat width =self.frame.size.width;
CGFloat height =self.frame.size.height;
// 设置scrollView的属性
_scrollView = [[UIScrollView alloc] initWithFrame:self.bounds];
//打开分页属性
_scrollView.pagingEnabled =YES;
//关闭水平和垂直方向的显示条
_scrollView.showsVerticalScrollIndicator =NO;
_scrollView.showsHorizontalScrollIndicator =NO;
//设置滑动范围
_scrollView.contentSize =CGSizeMake(width * _imageArray.count,height);
//设置代理方法
_scrollView.delegate =self;
//添加到视图上
[selfaddSubview:_scrollView];
// 设置分页控件的属性
_pageControl = [[UIPageControlalloc] initWithFrame:CGRectMake(0,self.frame.size.height - 30, width,30)];
//设置分页控件的分页数
_pageControl.numberOfPages =_imageArray.count;
//设置当前分页数
_pageControl.currentPage =0;
//设置分页控件的显示颜色
_pageControl.pageIndicatorTintColor = [UIColorredColor];
//添加到视图上面
[selfaddSubview:_pageControl];
// 设置左中右三个imageView的frame
_leftImage = [[UIImageViewalloc] initWithFrame:CGRectMake(0,0,width , height)];
_middenImage = [[UIImageViewalloc] initWithFrame:CGRectMake(width,0,width , height)];
_rightImage = [[UIImageViewalloc] initWithFrame:CGRectMake(width *2, 0,width , height)];
//添加到视图上
[_scrollViewaddSubview:_leftImage];
[_scrollViewaddSubview:_middenImage];
[_scrollViewaddSubview:_rightImage];
//开启定时器
_timer = [NSTimerscheduledTimerWithTimeInterval:1target:selfselector:@selector(timeAction:)userInfo:nilrepeats:YES];
// 设置图片
[selfloadImage];
}
- (void) loadImage {
//给左中右三个imageView添加图片
_middenImage.image = [UIImageimageNamed:_imageArray[_currentNum]];
NSInteger leftIndex = (_currentNum -1 + _imageArray.count)%_imageArray.count;
_leftImage.image = [UIImageimageNamed:_imageArray[leftIndex]];
NSInteger rightIndex = (_currentNum +1) % _imageArray.count;
_rightImage.image = [UIImageimageNamed:_imageArray[rightIndex]];
_pageControl.currentPage =_currentNum;
}
#pragma mark - scrollView的代理方法
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
if (scrollView.contentOffset.x >self.frame.size.width) {
_currentNum = (_currentNum+1) %_imageArray.count;
} elseif(scrollView.contentOffset.x <self.frame.size.width){
_currentNum = (_currentNum -1+_imageArray.count) %_imageArray.count;
}
[selfloadImage];
//设置滑动区域的大小
scrollView.contentOffset =CGPointMake(_scrollView.bounds.size.width,0);
}
#pragma mark - 定时器的方法
- (void)timeAction:(NSTimer *)timer {
_currentNum =_currentNum % _imageArray.count;
[selfloadImage];
_currentNum++;
_scrollView.contentOffset =CGPointMake(_scrollView.frame.size.width,0);
}
@end
- iOS 开发中滑动视图的循环播放
- 滑动视图的循环滑动
- iOS开发之滑动视图
- ios-播放器开发-锁屏、循环播放
- iOS图片的循环滑动
- iOS中UIScrollView实现图片循环播放
- ios 滑动切换视图
- IOS开发系列之UIScrollView(滚动视图)的常用属性和应用举例(滑动相册、轮播图)
- iOS开发之样式多样好用的滑动视图Demo
- 循环滑动视图uisctrollview滑动图片
- IOS开发中手势滑动的6种技巧
- IOS VLC 播放器 开发 滑动快进和后退
- IOS VLC 播放器 开发 滑动快进和后退
- ios UIScrollView 循环滑动
- ios UIScrollView 循环滑动
- ios UIScrollView 循环滑动
- ios ----UIScrollview循环滑动
- ios UIScrollView 循环滑动
- caffe convolution layer 笔记
- RecyclerView学习笔记
- 矩阵 Fibonacci
- mysql-connector python几点问题
- ArrayDeque类源码解析
- iOS 开发中滑动视图的循环播放
- 最大公约数和最小公倍数(gcd的几种解法)
- 实现UWP ListBox横向展示内容
- Poj 2002
- crontab定时任务
- jzoj 1588. 【普及模拟】GPS定位
- ViewFlipper与Gesture的使用<一>
- mysql查看表使用的数据库引擎
- Android webView控制网页路由