UIScrollView的循环滚动+UIPageControll
2016-07-28 10:23
309 查看
//
// ViewController.m
// UIScrollView循环播放效果
//
// Created by on 16/7/27.
// Copyright © 2016年 xiaopeng. All rights reserved.
//
#import "ViewController.h"
int NumbersOfPictures =
9;
@interface ViewController (){
UIImageView *_leftImageView;
UIImageView *_currentImageView;
UIImageView *_rightImageView;
//_currentIndex用来标识Image显示的位置
NSInteger _currentIndex;
UIScrollView *_scrollView;
UIPageControl *_pageControll;
NSMutableArray *_imageNameList;
double VIEW_WIDTH;
double VIEW_HEIGHT;
}
//初始化数据源
-(void)initializeDataSource;
//初始化用户界面
-(void)initializeUserInterface;
@end
@implementation ViewController
- (void)viewDidLoad {
[super
viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[self
initializeDataSource];
[self
initializeUserInterface];
}
//初始化数据源
-(void)initializeDataSource{
_currentIndex =
0;
_imageNameList = [[NSMutableArray
alloc]init];
for(int i=0;i<NumbersOfPictures;i++){
NSString *imageName = [NSString
stringWithFormat:@"%d.jpg",i];
[_imageNameList
addObject:imageName];
}
//初始化宽和高
VIEW_WIDTH =
CGRectGetWidth(self.view.bounds);
VIEW_HEIGHT =
CGRectGetHeight(self.view.bounds);
}
//从0开始索引
//初始化图片
-(void)initImages{
NSLog(@"初始化三张图片%ld",_currentIndex);
_leftImageView.image = [UIImage
imageNamed:_imageNameList[(_currentIndex-1+NumbersOfPictures)%NumbersOfPictures]];
_currentImageView.image = [UIImage
imageNamed:_imageNameList[_currentIndex]];
_rightImageView.image = [UIImage imageNamed:_imageNameList[(_currentIndex+1)%NumbersOfPictures]];
}
//初始化用户界面
-(void)initializeUserInterface{
//初始化_scrollView
_scrollView = [[UIScrollView
alloc]init];
[_scrollView
setBounds:self.view.bounds];
[_scrollView
setCenter:self.view.center];
_scrollView.pagingEnabled =
YES;
[_scrollView
setDelegate:self];
[_scrollView
setBounces:NO];
[_scrollView
setContentSize:CGSizeMake(3*VIEW_WIDTH,VIEW_HEIGHT)];
[_scrollView
setContentOffset:CGPointMake(VIEW_WIDTH,
0)];
[self.view
addSubview:_scrollView];
_pageControll = [[UIPageControl
alloc]initWithFrame:CGRectMake(0,VIEW_HEIGHT-60,
VIEW_WIDTH, 30)];
[_pageControll
setNumberOfPages:9];
[_pageControll
setCurrentPage:_currentIndex];
[_pageControll
setPageIndicatorTintColor:[UIColor
blackColor]];
[self.view
addSubview:_pageControll];
//初始化三张ImageView的位置
_leftImageView = [[UIImageView
alloc]initWithFrame:CGRectMake(0,
0, VIEW_WIDTH,
VIEW_HEIGHT)];
_currentImageView = [[UIImageView
alloc]initWithFrame:CGRectMake(VIEW_WIDTH,
0, VIEW_WIDTH,
VIEW_HEIGHT)];
_rightImageView = [[UIImageView
alloc]initWithFrame:CGRectMake(2*VIEW_WIDTH,
0, VIEW_WIDTH,
VIEW_HEIGHT)];
//初始化图片数据
[self
initImages];
[_scrollView
addSubview:_leftImageView];
[_scrollView
addSubview:_currentImageView];
[_scrollView
addSubview:_rightImageView];
}
-(void)scrollViewDidScroll:(UIScrollView *)scrollView{
}
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
CGPoint contentOffset = [_scrollView
contentOffset];
if(contentOffset.x>VIEW_WIDTH){
NSLog(@"向右划");
_currentIndex=++_currentIndex%NumbersOfPictures;
[_pageControll
setCurrentPage:_currentIndex];
[self
initImages];
[_scrollView
setContentOffset:CGPointMake(VIEW_WIDTH,
0)];
}
else
if(contentOffset.x<VIEW_WIDTH){
NSLog(@"向左滑动");
_currentIndex=(_currentIndex-1+NumbersOfPictures)%NumbersOfPictures;
[_pageControll
setCurrentPage:_currentIndex];
[self
initImages];
[_scrollView
setContentOffset:CGPointMake(VIEW_WIDTH,
0)];
}
else{
NSLog(@"do nothing");
}
}
@end
// ViewController.m
// UIScrollView循环播放效果
//
// Created by on 16/7/27.
// Copyright © 2016年 xiaopeng. All rights reserved.
//
#import "ViewController.h"
int NumbersOfPictures =
9;
@interface ViewController (){
UIImageView *_leftImageView;
UIImageView *_currentImageView;
UIImageView *_rightImageView;
//_currentIndex用来标识Image显示的位置
NSInteger _currentIndex;
UIScrollView *_scrollView;
UIPageControl *_pageControll;
NSMutableArray *_imageNameList;
double VIEW_WIDTH;
double VIEW_HEIGHT;
}
//初始化数据源
-(void)initializeDataSource;
//初始化用户界面
-(void)initializeUserInterface;
@end
@implementation ViewController
- (void)viewDidLoad {
[super
viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[self
initializeDataSource];
[self
initializeUserInterface];
}
//初始化数据源
-(void)initializeDataSource{
_currentIndex =
0;
_imageNameList = [[NSMutableArray
alloc]init];
for(int i=0;i<NumbersOfPictures;i++){
NSString *imageName = [NSString
stringWithFormat:@"%d.jpg",i];
[_imageNameList
addObject:imageName];
}
//初始化宽和高
VIEW_WIDTH =
CGRectGetWidth(self.view.bounds);
VIEW_HEIGHT =
CGRectGetHeight(self.view.bounds);
}
//从0开始索引
//初始化图片
-(void)initImages{
NSLog(@"初始化三张图片%ld",_currentIndex);
_leftImageView.image = [UIImage
imageNamed:_imageNameList[(_currentIndex-1+NumbersOfPictures)%NumbersOfPictures]];
_currentImageView.image = [UIImage
imageNamed:_imageNameList[_currentIndex]];
_rightImageView.image = [UIImage imageNamed:_imageNameList[(_currentIndex+1)%NumbersOfPictures]];
}
//初始化用户界面
-(void)initializeUserInterface{
//初始化_scrollView
_scrollView = [[UIScrollView
alloc]init];
[_scrollView
setBounds:self.view.bounds];
[_scrollView
setCenter:self.view.center];
_scrollView.pagingEnabled =
YES;
[_scrollView
setDelegate:self];
[_scrollView
setBounces:NO];
[_scrollView
setContentSize:CGSizeMake(3*VIEW_WIDTH,VIEW_HEIGHT)];
[_scrollView
setContentOffset:CGPointMake(VIEW_WIDTH,
0)];
[self.view
addSubview:_scrollView];
_pageControll = [[UIPageControl
alloc]initWithFrame:CGRectMake(0,VIEW_HEIGHT-60,
VIEW_WIDTH, 30)];
[_pageControll
setNumberOfPages:9];
[_pageControll
setCurrentPage:_currentIndex];
[_pageControll
setPageIndicatorTintColor:[UIColor
blackColor]];
[self.view
addSubview:_pageControll];
//初始化三张ImageView的位置
_leftImageView = [[UIImageView
alloc]initWithFrame:CGRectMake(0,
0, VIEW_WIDTH,
VIEW_HEIGHT)];
_currentImageView = [[UIImageView
alloc]initWithFrame:CGRectMake(VIEW_WIDTH,
0, VIEW_WIDTH,
VIEW_HEIGHT)];
_rightImageView = [[UIImageView
alloc]initWithFrame:CGRectMake(2*VIEW_WIDTH,
0, VIEW_WIDTH,
VIEW_HEIGHT)];
//初始化图片数据
[self
initImages];
[_scrollView
addSubview:_leftImageView];
[_scrollView
addSubview:_currentImageView];
[_scrollView
addSubview:_rightImageView];
}
-(void)scrollViewDidScroll:(UIScrollView *)scrollView{
}
-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
CGPoint contentOffset = [_scrollView
contentOffset];
if(contentOffset.x>VIEW_WIDTH){
NSLog(@"向右划");
_currentIndex=++_currentIndex%NumbersOfPictures;
[_pageControll
setCurrentPage:_currentIndex];
[self
initImages];
[_scrollView
setContentOffset:CGPointMake(VIEW_WIDTH,
0)];
}
else
if(contentOffset.x<VIEW_WIDTH){
NSLog(@"向左滑动");
_currentIndex=(_currentIndex-1+NumbersOfPictures)%NumbersOfPictures;
[_pageControll
setCurrentPage:_currentIndex];
[self
initImages];
[_scrollView
setContentOffset:CGPointMake(VIEW_WIDTH,
0)];
}
else{
NSLog(@"do nothing");
}
}
@end
相关文章推荐
- Duilib创建窗口双击标题栏禁止窗口最大化
- DJi GuidanceSDK调研报告
- phy0 -> rt2x00lib_request_firmware: Error - Failed to request Firmware.
- 画饼状图-UIBezierPath
- Mui沉浸模式以及状态栏颜色改变
- UISlider 使用
- UGUI学习的第二天
- Android Studio里面的Build.gradle的详细配置说明
- CodeForces 288C Polo the Penguin and XOR operation
- Codeforces 612C: Replace To Make Regular Bracket Sequence(栈)
- HDU-1806 Frequent values (RMQ, 最大连续值区间)
- POJ 2371 Questions and answers
- HDOJ 4027 Can you answer these queries?(线段树+区间标记)
- Stacked Attention Networks for Image Question Answering
- request.getParameterNames()步骤
- Longest Ordered Subsequence
- Burp Suite
- Longest Increasing Subsequence
- iOS开发从入门到精通--UIGesture手势扩展,平移,滑动,长按
- Java中ProcessBuilder使用