iOS用UICollectonview实现轮播图效果
来源:互联网 发布:香港域名注册有限公司 编辑:程序博客网 时间:2024/06/05 09:17
//
// ViewController.m
// UICollectionviewPlay
//
// Created by clowire on 16/10/13.
// Copyright © 2016年 clowire. All rights reserved.
//
#import "ViewController.h"
@interface ViewController ()<UICollectionViewDelegate,UICollectionViewDataSource>
@property (nonatomic,strong)UICollectionView * collectionView;
@property (nonatomic,strong)UIPageControl * pageControl;
@property (nonatomic,strong)NSTimer * timer;
- (void)initialUSerInterface;
@end
@implementation ViewController
- (void)viewDidLoad {
[superviewDidLoad];
self.view.backgroundColor = [UIColorwhiteColor];
[selfinitialUSerInterface];
// Do any additional setup after loading the view, typically from a nib.
}
//懒加载pageControl
- (UIPageControl *)pageControl{
if (_pageControl ==nil) {
//分页控件,本质上和scorllView没有任何关系,是2个独立的控件
_pageControl = [[UIPageControlalloc]init];
_pageControl.numberOfPages =5;
CGSize size = [_pageControlsizeForNumberOfPages:5];
_pageControl.bounds =CGRectMake(0,0, size.width, size.width);
_pageControl.center =CGPointMake(self.view.center.x,130);
_pageControl.pageIndicatorTintColor = [UIColorredColor];
[self.viewaddSubview:_pageControl];
}
return_pageControl;
}
- (void)initialUSerInterface{
UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayoutalloc]init];
layout.itemSize =CGSizeMake(self.view.frame.size.width,250);
layout.scrollDirection =UICollectionViewScrollDirectionHorizontal;
UICollectionView *collectionView = [[UICollectionViewalloc]initWithFrame:CGRectMake(0,10, self.view.frame.size.width,250) collectionViewLayout:layout];
collectionView.backgroundColor = [UIColorwhiteColor];
collectionView.delegate =self;
collectionView.dataSource =self;
[collectionView registerClass:[UICollectionViewCellclass] forCellWithReuseIdentifier:@"myCell"];
collectionView.pagingEnabled =YES;
collectionView.showsHorizontalScrollIndicator =NO;
collectionView.showsVerticalScrollIndicator =NO;
collectionView.bounces =NO;
collectionView.contentSize =CGSizeMake(5 * collectionView.bounds.size.width,0);
[self.viewaddSubview:collectionView];
self.collectionView = collectionView;
[selfaddNSTime];
self.pageControl.currentPage = 0;
}
//添加定时器
- (void)addNSTime{
NSTimer *timer = [NSTimerscheduledTimerWithTimeInterval:2.0target:selfselector:@selector(nextPage)userInfo:nilrepeats:YES];
//添加到runloop中
[[NSRunLoopmainRunLoop] addTimer:timerforMode:NSRunLoopCommonModes];
[timer fire];
self.timer = timer;
}
//删除定时器
- (void)removeNSTimer{
[self.timerinvalidate];
self.timer =nil;
}
//自动滚动
- (void)nextPage{
NSInteger currentNumber =self.pageControl.currentPage;
CGFloat x = ((currentNumber +1)%5) *self.collectionView.bounds.size.width;
if (currentNumber <=5) {
[self.collectionViewsetContentOffset:CGPointMake(x,0) animated:YES];
}else{
[self.collectionViewsetContentOffset:CGPointMake(x,0) animated:NO];
}
self.pageControl.currentPage = x;
}
#pragma mark --)<UICollectionViewDataSource,UICollectionViewDelegate>
- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView{
return1;
}
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{
return5;
}
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
UICollectionViewCell *cell = [collectionViewdequeueReusableCellWithReuseIdentifier:@"myCell"forIndexPath:indexPath];
cell.backgroundColor = [UIColoryellowColor];
UIImageView *image = [[UIImageViewalloc]initWithImage:[UIImageimageNamed:[NSStringstringWithFormat:@"%ld",indexPath.row +1]]];
image.frame = cell.bounds;
[cell addSubview:image];
return cell;
}
//当用户开始拖拽的时候就调用
- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView{
[selfremoveNSTimer];
}
//当用户停止拖拽的时候调用
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{
[selfaddNSTime];
}
//设置页码
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
int page = (int)(scrollView.contentOffset.x/scrollView.frame.size.width + 0.5)%5;
self.pageControl.currentPage = page;
}- (void)didReceiveMemoryWarning {
[superdidReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
- iOS用UICollectonview实现轮播图效果
- iOS之旅--用CollectionView实现轮播图效果+封装方法
- (2)iOS用UICollectionView实现Gallery效果
- ios 用 UIBezierPath 实现果冻效果
- iOS开发 - 用 UIBezierPath 实现果冻效果
- iOS实现透视效果
- iOS实现透视效果
- iOS实现走马灯效果
- iOS实现模糊效果
- ios 抽屉效果实现
- iOS实现抽屉效果
- iOS 模糊效果实现
- iOS毛玻璃效果实现
- iOS 实现毛玻璃效果
- iOS 实现模糊效果
- iOS 抽屉效果实现
- iOS毛玻璃效果实现
- 【iOS】一键换肤效果实现
- mingw+ffmpeg+x265编译配置
- spring 基本的常用的注解
- Android隐藏/移除ActionBar
- 网际协议(IP,Internet Protocol)
- jquery中attr和prop的区别
- iOS用UICollectonview实现轮播图效果
- ossim agent的插件和日志格式化过程
- MySQL数据类型和常用字段属性总结
- Vlfeat,mexopencv,mex的路径配置
- CSS设置table 中td的内容自动换行
- svn服务器的安装
- tensrflow lstm
- 使用nodejs、Express和MongDB搭建个人博客
- Android studio如何导入第三方类库