标签:
#import "SKUIViewController.h"
@interface SKUIViewController() <UIScrollViewDelegate>
@property(nonatomic,weak)IBOutlet UIScrollView *scrollview;
@property(nonatomic,weak)IBOutlet UIImageView *imageView;
//高度固定为37,可以通过设置他的Y坐标放到view中去
@property(nonatomic,weak)IBOutlet UIPageControl *pageControl;
@property(nonatomic,strong)NSTimer timer;
@end
@impletation SKUIViewController
-(void)viewDidLoad
{
[super viewDidLoad];
//将图片天道到scrollV中
//int imageCount=10;
//图片显示在滚动栏中的宽和高和滚动栏的宽高一样
CGFloat imageW=self.scrollview.frame.size.width;
CFFloat imageH=self.scrollview.frame.size.height;
CGFloat imageY=0;
for(int i=0;i<imageCount;i++)
{
//在storyboard中向滚动栏添加图片不方便,可采用代码添加
UIImageView *imageView=[[UIImageView alloc]init];
//图片的起始位置和图片的页数有关,也就是说随着图片一张张过去,它的X也会跟着增大相应的倍数
CGFloat imageX=i*imageW;
imageView.frame=CGRectMake(imageX,imageY,imageW,imageH);
//通过获取文件名,设置iamgeview对应的图片
NSString *name=[NSString StringWithFormat:@"image_0%d",i];
imageView.image=[UIImage imageNamed:name];
//将图片添加到滚动栏中去
[self.scrollview addSubview:imageView];
}
//设置scrollView的滚动范围
CGFloat contentW=imageW*imageCount;
//scrollview最多可以滚到图片最后一张,但是它的Y不用改变,设为0
self.scrollview.contentSize(contentW,0);
//隐藏水平滚动条
self.scrollview.showHorizontalScrollIndicator=NO;
//隐藏垂直滚动条
self.scrollview.showVerticalScrollIndicator=NO;
//设置scrollview可以分页
self.scrollview.pagingEnabled=YES;
//设置pageControl的页数
self.pageControl.numbreOfPages=imageCount;
//设置代理
self.scrollview.delagate=self;
[self addTimer];
//addTimer
-(void)addTimer
{
//添加定时器(每隔2秒会自动调用一次self的nextImage方法)
self.timer=[NSTimer scheduledTimerWithTimeInterval:2.0 target;self selector:@selector(nextImage) userInfo:nil repeats:YES];
//多个业务处理,若下方有一个textview时,它也可以滚动,这时候如果不处理,图片会暂停移动
[[NSRunLoop cuttrentRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes];
}
//移除定时器
-(void)removeTimer
{
[self.timer invalidate];
self,timer=nil;
}
//nextImage方法的实现
-(void)nextImage
{
int page=0;
//增加pageController的页码
if(self.pageControl.currentPage==iamgeCount-1)
{
page=0;
}
else
{
page=self.pageControl.currentPage+1;
}
CGFloat offsetX=page*self.scrollview.frame.width;
CGPoint offset=CGPointMake(offsetX,0);
[self.scrollView setContentOffset:offset animated:YES];
}
//当scrollview正在滚动时调用
-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
//根据scroll的滚动位置来决定pageControl显示第几页
int page=(scrollView.contentOffset.x+scrollView.frame.size.width)/(self.scrollView.frame.width);
//将当前页面的页数赋值给pageControl的当前页数。通过这样,可以实现滑动时跳到下一页面或上一页面
self.pageControl.currentPage=page;
}
//当scrollview开始拖拽是调用
-(void)scrollViewWillBiginDragging:(UIScrollView *)scrollView
{
[self removeTimer];
}
//当scrollview停止拖拽时调用
-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView
{
[self addTimer];
}
}
@end
标签:
原文地址:http://www.cnblogs.com/SKuncle/p/4265391.html