【iOS开发】关于图片轮播器的实现代码

来源:互联网 发布:脸部黄金比例软件 编辑:程序博客网 时间:2024/04/29 04:13
@interface ViewController () <UIScrollViewDelegate>@property (weak, nonatomic) IBOutlet UIScrollView *scrollView;@property (weak, nonatomic) IBOutlet UIPageControl *pageShow;@property(strong, nonatomic)NSTimer *Timer;@end@implementation ViewController- (void)viewDidLoad {    [super viewDidLoad];        CGFloat imageH = 130;    CGFloat imageW = 300;           for(int i = 0; i < imageCount; i++) {                UIImageView *imageView = [[UIImageView alloc] init];        [imageView setImage:[UIImage imageNamed:[NSString stringWithFormat:@"img_0%d", i+1]]];        imageView.frame = CGRectMake(i * imageW, 0, imageW, imageH);        [self.scrollView addSubview:imageView];    }    self.scrollView.delegate = self;        self.scrollView.showsHorizontalScrollIndicator = NO;    self.scrollView.contentSize = CGSizeMake(imageCount * imageW, imageH);       //scrollView会自动分页    self.scrollView.pagingEnabled = YES;        self.pageShow.numberOfPages = imageCount;        [self addTimer];    }//添加定时器-(void) addTimer {    self.Timer = [NSTimer timerWithTimeInterval:2.0 target:self selector:@selector(nextImage) userInfo:nil repeats:YES];        [[NSRunLoop currentRunLoop] addTimer:self.Timer forMode:NSRunLoopCommonModes];}//下一张图片-(void) nextImage {    int page = 0;    if(self.pageShow.currentPage == imageCount - 1) {        page = 0;    } else {        page = self.pageShow.currentPage + 1;    }        CGFloat offsetX = page * self.scrollView.frame.size.width;    CGPoint offset = CGPointMake(offsetX, 0);    [self.scrollView setContentOffset:offset animated:YES];}//移除定时器-(void) removeTimer {    [self.Timer invalidate];    self.Timer = nil;}//开始拖拽时候调用- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {    [self removeTimer];}//拖拽过程中调用- (void)scrollViewDidScroll:(UIScrollView *)scrollView {    CGFloat width = scrollView.contentOffset.x;    int page = (width + 150) / 300;    self.pageShow.currentPage = page;}//拖拽结束调用- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {    [self addTimer];}@end

0 0
原创粉丝点击