ios无线轮播图
2016-01-20 14:48
417 查看
首先创建一个scrollview
_centerIndext = 0;
_scroller = [[UIScrollView alloc]init];
_scroller.frame =CGRectMake(0, 0, WIDTH, self.frame.size.height);
_scroller.contentSize = CGSizeMake(3*WIDTH, 0);
_scroller.contentOffset = CGPointMake(WIDTH, 0);
_scroller.backgroundColor = [UIColor clearColor];
_scroller.pagingEnabled =YES;
_scroller.bounces = NO;
_scroller.delegate = self;
_scroller.showsVerticalScrollIndicator = NO;
_scroller.showsHorizontalScrollIndicator = NO;
[self addSubview:_scroller];
再创建3个imageVIew
_leftImage = [[UIImageView alloc]init];
[_leftImage sd_setImageWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@%@",imagURL,[_imageUrlArray lastObject]]] placeholderImage:[UIImage imageNamed:@"默认logo-文章列表用.jpg"] completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL)
{
CGFloat bili = WIDTH/image.size.width;
CGFloat height =image.size.height*bili;
_leftImage.frame = CGRectMake(0,(selfHeight-height)/2 , WIDTH, height);
[_scroller addSubview:_leftImage];
}];
_centerImage = [[UIImageView alloc]init];
[_centerImage sd_setImageWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@%@",imagURL,_imageUrlArray[0]]] placeholderImage:[UIImage imageNamed:@"默认logo-文章列表用.jpg"] completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL)
{
CGFloat bili = WIDTH/image.size.width;
CGFloat height =image.size.height*bili;
_centerImage.frame = CGRectMake(WIDTH, (selfHeight-height)/2, WIDTH, image.size.height*bili);
[_scroller addSubview:_centerImage];
} ];
_rightImage = [[UIImageView alloc]init];
[_rightImage sd_setImageWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@%@",imagURL,_imageUrlArray[1]]] placeholderImage:[UIImage imageNamed:@"默认logo-文章列表用.jpg"] completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL)
{
CGFloat bili = WIDTH/image.size.width;
CGFloat height =image.size.height*bili;
_rightImage.frame = CGRectMake(WIDTH*2, (selfHeight-height)/2, WIDTH, image.size.height*bili);
[_scroller addSubview:_rightImage];
}];
接着是scrollview滑动结束后触动的方法
CGFloat selfHeight = HEIGHT-49-64;
NSInteger leftIndext,rightIndex;
CGPoint offset = [_scroller contentOffset];
if (offset.x == 2*WIDTH)
{
_centerIndext = (_centerIndext+1)%_imageUrlArray.count;
}
else if (offset.x == 0)
{
if (_centerIndext-1 <0)
{
_centerIndext = _imageUrlArray.count-1;
}
else
{
_centerIndext = (_centerIndext-1)%_imageUrlArray.count;
}
}
[_centerImage sd_setImageWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@%@",imagURL,_imageUrlArray[_centerIndext]]] placeholderImage:[UIImage imageNamed:@"默认logo-文章列表用.jpg"] completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL)
{
CGFloat bili = WIDTH/image.size.width;
CGFloat height =image.size.height*bili;
_centerImage.frame = CGRectMake(WIDTH, (selfHeight-height)/2, WIDTH, image.size.height*bili);
} ];
if (_centerIndext == 0)
{
leftIndext = _imageUrlArray.count-1;
}
else
{
leftIndext = (_centerIndext-1)%_imageUrlArray.count;
}
rightIndex = (_centerIndext+1)%_imageUrlArray.count;
[_leftImage sd_setImageWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@%@",imagURL,_imageUrlArray[leftIndext]]] placeholderImage:[UIImage imageNamed:@"默认logo-文章列表用.jpg"] completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL)
{
CGFloat bili = WIDTH/image.size.width;
CGFloat height =image.size.height*bili;
_leftImage.frame = CGRectMake(0,(selfHeight-height)/2 , WIDTH, height);
}];
[_rightImage sd_setImageWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@%@",imagURL,_imageUrlArray[rightIndex]]] placeholderImage:[UIImage imageNamed:@"默认logo-文章列表用.jpg"] completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL)
{
CGFloat bili = WIDTH/image.size.width;
CGFloat height =image.size.height*bili;
_rightImage.frame = CGRectMake(WIDTH*2, (selfHeight-height)/2, WIDTH, image.size.height*bili);
}];
最后是代理
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
[self reloadImage];
[_scroller setContentOffset:CGPointMake(WIDTH, 0) animated:NO];
}
_centerIndext = 0;
_scroller = [[UIScrollView alloc]init];
_scroller.frame =CGRectMake(0, 0, WIDTH, self.frame.size.height);
_scroller.contentSize = CGSizeMake(3*WIDTH, 0);
_scroller.contentOffset = CGPointMake(WIDTH, 0);
_scroller.backgroundColor = [UIColor clearColor];
_scroller.pagingEnabled =YES;
_scroller.bounces = NO;
_scroller.delegate = self;
_scroller.showsVerticalScrollIndicator = NO;
_scroller.showsHorizontalScrollIndicator = NO;
[self addSubview:_scroller];
再创建3个imageVIew
_leftImage = [[UIImageView alloc]init];
[_leftImage sd_setImageWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@%@",imagURL,[_imageUrlArray lastObject]]] placeholderImage:[UIImage imageNamed:@"默认logo-文章列表用.jpg"] completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL)
{
CGFloat bili = WIDTH/image.size.width;
CGFloat height =image.size.height*bili;
_leftImage.frame = CGRectMake(0,(selfHeight-height)/2 , WIDTH, height);
[_scroller addSubview:_leftImage];
}];
_centerImage = [[UIImageView alloc]init];
[_centerImage sd_setImageWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@%@",imagURL,_imageUrlArray[0]]] placeholderImage:[UIImage imageNamed:@"默认logo-文章列表用.jpg"] completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL)
{
CGFloat bili = WIDTH/image.size.width;
CGFloat height =image.size.height*bili;
_centerImage.frame = CGRectMake(WIDTH, (selfHeight-height)/2, WIDTH, image.size.height*bili);
[_scroller addSubview:_centerImage];
} ];
_rightImage = [[UIImageView alloc]init];
[_rightImage sd_setImageWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@%@",imagURL,_imageUrlArray[1]]] placeholderImage:[UIImage imageNamed:@"默认logo-文章列表用.jpg"] completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL)
{
CGFloat bili = WIDTH/image.size.width;
CGFloat height =image.size.height*bili;
_rightImage.frame = CGRectMake(WIDTH*2, (selfHeight-height)/2, WIDTH, image.size.height*bili);
[_scroller addSubview:_rightImage];
}];
接着是scrollview滑动结束后触动的方法
CGFloat selfHeight = HEIGHT-49-64;
NSInteger leftIndext,rightIndex;
CGPoint offset = [_scroller contentOffset];
if (offset.x == 2*WIDTH)
{
_centerIndext = (_centerIndext+1)%_imageUrlArray.count;
}
else if (offset.x == 0)
{
if (_centerIndext-1 <0)
{
_centerIndext = _imageUrlArray.count-1;
}
else
{
_centerIndext = (_centerIndext-1)%_imageUrlArray.count;
}
}
[_centerImage sd_setImageWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@%@",imagURL,_imageUrlArray[_centerIndext]]] placeholderImage:[UIImage imageNamed:@"默认logo-文章列表用.jpg"] completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL)
{
CGFloat bili = WIDTH/image.size.width;
CGFloat height =image.size.height*bili;
_centerImage.frame = CGRectMake(WIDTH, (selfHeight-height)/2, WIDTH, image.size.height*bili);
} ];
if (_centerIndext == 0)
{
leftIndext = _imageUrlArray.count-1;
}
else
{
leftIndext = (_centerIndext-1)%_imageUrlArray.count;
}
rightIndex = (_centerIndext+1)%_imageUrlArray.count;
[_leftImage sd_setImageWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@%@",imagURL,_imageUrlArray[leftIndext]]] placeholderImage:[UIImage imageNamed:@"默认logo-文章列表用.jpg"] completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL)
{
CGFloat bili = WIDTH/image.size.width;
CGFloat height =image.size.height*bili;
_leftImage.frame = CGRectMake(0,(selfHeight-height)/2 , WIDTH, height);
}];
[_rightImage sd_setImageWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@%@",imagURL,_imageUrlArray[rightIndex]]] placeholderImage:[UIImage imageNamed:@"默认logo-文章列表用.jpg"] completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL)
{
CGFloat bili = WIDTH/image.size.width;
CGFloat height =image.size.height*bili;
_rightImage.frame = CGRectMake(WIDTH*2, (selfHeight-height)/2, WIDTH, image.size.height*bili);
}];
最后是代理
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
[self reloadImage];
[_scroller setContentOffset:CGPointMake(WIDTH, 0) animated:NO];
}
相关文章推荐
- iOS webView与H5的交互(返回页面的处理)
- 倒计时按钮,iOS
- 给iOS开发新手送点福利,简述文本属性Attributes的用法
- IOS-学习笔记(3)
- iOS解决两个静态库的冲突 duplicate symbol
- iOS常用---NSArray,NSMutabuleArray
- iOS-手绘点(类似分段选择器下方突出的小三角)
- iOS开发 [SY_InformationController respondsToSelector:]: message sent to deallocated崩溃信息
- IOS 与 Android WebView 中 JS 调用原生代码
- iOS语法小结---豁然开朗
- IOS-多线程(NSOperation)
- iOS-IM From XMPP.2 工程配置、#import <libxml/tree.h>、 @import libxmlSimu 错误处理
- iOS-IM From XMPP.1 初识XMPP
- ios中view和view的传值(NSUserDefaults和通知中心)
- iOS Debug日志 约束问题
- iOS时间戳与日期互转
- IOS开发者必看的105个全球最佳博客
- iOS 学习框架图
- 使用clang-format对iOS项目代码进行格式化
- iOS开发--内存管理之内存分配