图片轮播器
来源:互联网 发布:1521端口入侵 编辑:程序博客网 时间:2024/06/06 03:02
代码如下:
@interface ViewController ()<UIScrollViewDelegate>
@property (weak,nonatomic) IBOutletUIScrollView *scrollView;
@property (weak,nonatomic) IBOutletUIPageControl *pageController;
@property (nonatomic,strong)NSTimer *time;
@end
@implementation ViewController
- (void)viewDidLoad {
[superviewDidLoad];
/**
*切记要加上代理
* 也可以在xib直接拉线和tableview类似
*/
self.scrollView.delegate =self;
//一些固定尺寸的参数
CGFloat imageW =self.scrollView.bounds.size.width;
CGFloat imageH =self.scrollView.bounds.size.height;
CGFloat imageY =0;
//添加5张图片到scrollView中
for (int i =0; i < JFImageCount; i++) {
CGFloat imageX = i * imageW;
UIImageView * imageView = [[UIImageViewalloc]init];
imageView.frame =CGRectMake(imageX, imageY, imageW, imageH);
NSString *imageNameStr = [NSStringstringWithFormat:@"img_0%d",i+1];
imageView.image = [UIImageimageNamed:imageNameStr];
[self.scrollViewaddSubview:imageView];
}
// 2.设置内容尺寸
CGFloat contentW =JFImageCount * imageW;
self.scrollView.contentSize =CGSizeMake(contentW, 0);
// 3.隐藏水平滚动条
self.scrollView.showsHorizontalScrollIndicator =NO;
// 4.分页
self.scrollView.pagingEnabled =YES;
// 5.设置pageControl的总页数
self.pageController.numberOfPages =JFImageCount;
// 6.添加定时器(每隔2秒调用一次self的nextImage方法)
[selfaddTime];
}
/**
* 添加定时器
*
*/
-(void)addTime{
// self.time = [NSTimer timerWithTimeInterval:2 target:self selector:@selector(nextImage) userInfo:nil repeats:YES];
self.time = [NSTimerscheduledTimerWithTimeInterval:2target:selfselector:@selector(nextImage)userInfo:nilrepeats:YES];
[[NSRunLoopcurrentRunLoop]addTimer:self.timeforMode:NSRunLoopCommonModes];
}
/**
*移除定时器
*
**/
-(void)removeTime{
[self.timeinvalidate];
self.time =nil;
}
-(void)nextImage{
// 1.增加pageControl的页码
int page =0;
if (self.pageController.currentPage == JFImageCount - 1) {
page = 0;
}else{
page = (int)self.pageController.currentPage +1;
}
// 2.计算scrollView滚动的位置
CGFloat offsetX = page *self.scrollView.frame.size.width;
CGPoint offSet =CGPointMake(offsetX, 0);
[self.scrollViewsetContentOffset:offSet animated:YES];
}
#pragma mark -scrollView 的代理方法
/**
* 当scrollView正常滚动的时候就会调用
*
***/
-(void)scrollViewDidScroll:(UIScrollView *)scrollView{
// 根据scrollView的滚动位置决定pageControl显示第几页
CGFloat scrollW = scrollView.frame.size.width;
int page = (scrollView.contentOffset.x + scrollW *0.5) / scrollW;
self.pageController.currentPage = page;
}
/**
* 开始拖拽的时候调用
*/
-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{
// 停止定时器(一旦定时器停止了,就不能再使用)
[selfremoveTime];
}
/**
* 停止拖拽的时候调用
*/
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
//开启定时器
[selfaddTime];
}
- 图片轮播器
- 图片轮播器
- 图片轮播器
- 图片轮播器
- 图片轮播器
- 图片轮播器
- 图片轮播器
- 一个JS图片轮播器
- JS 图片轮播器
- 图片轮播器[ScrollView,PageControl]
- swift:无限图片轮播器
- IOS_图片轮播器实现
- 无限图片轮播器
- 无限循环 图片轮播器
- 图片轮播器 部分自用
- iOS 图片轮播器
- JavaScript实现图片轮播器
- iOS中的图片轮播器
- 【Objective-C】11-构造方法
- MLC、SLC NAND FLASH区别和架构对比
- spring mvc示例_servlet获取spring Bean
- linux shell 监控web服务
- vim环境配置之airline乱码问题
- 图片轮播器
- hdu-2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活
- Linux的用户接口与文本编辑器
- 应用程序无法正常启动0xc000007b
- 霍夫曼编码介绍和霍夫曼编码的接口与实现
- unity使用AnimationCurve实现RPG中攻击与受伤时的分数的动态效果ScoreFlash
- 将一个int类型的数字转化为字符串,并判断有无重复字符串(长度应大于等于2)有返回1,无返回0
- Shell命令行
- shell编程——select语句