NO IMAGE
//
//  ViewController.m
//  喜馬拉雅1.12
//
//  Created by waka on 15/7/16.
//  Copyright (c) 2015年 IOS. All rights reserved.
//
#import "ViewController.h"
#define JTImageCount 5
@interface ViewController ()
@property (weak, nonatomic) IBOutlet UIScrollView *scrollViewr;
@property (weak, nonatomic) IBOutlet UIButton *lastBtn;
@property (weak, nonatomic) IBOutlet UIScrollView *scrollView;
@property (weak, nonatomic) IBOutlet UIPageControl *pageControl;
/** 定時器 */
@property (nonatomic , strong) NSTimer *timer;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// 設定 尺寸內容~
// 得到最大Y值 傳入要求的frame 自動求出Y
CGFloat contentH = CGRectGetMaxY(self.lastBtn.frame)   15;
self.scrollViewr.contentSize = CGSizeMake(0, contentH);
// 增加額外的滾動區域
self.scrollViewr.contentInset = UIEdgeInsetsMake(5, 0, 50, 0);
// 設定一開始的滾動區域
self.scrollViewr.contentOffset = CGPointMake(0, 0);
// 新增5張圖片到scrollView
// 一些 固定尺寸的引數
//    int imageCount = JTImageCount;
CGFloat imageW = self.scrollView.frame.size.width;
CGFloat imageH = self.scrollView.frame.size.height;
CGFloat imageY = 0;
for (int i = 0; i < JTImageCount; i   ) {
UIImageView *imageView = [[UIImageView alloc] init];
// 設定圖片的frame
CGFloat imageX = i * imageW;
imageView.frame = CGRectMake(imageX, imageY, imageW, imageH);
// 設定圖片
NSString *name = [NSString stringWithFormat:@"img_00%d", i 1];
imageView.image = [UIImage imageNamed:name];
[self.scrollView addSubview:imageView];
}
// 設定內容的尺寸
CGFloat contentW = JTImageCount * imageW;
self.scrollView.contentSize = CGSizeMake(contentW, 0);
self.scrollView.showsHorizontalScrollIndicator = NO;
// 分頁 按scrollView 的大小 分頁~
self.scrollView.pagingEnabled = YES;
//    self.scrollView.delegate = self;// 設定代理  還可以 拖線
// 設定pageControl的總頁數
self.pageControl.numberOfPages = JTImageCount;
// 新增定時器 多長時間自動幹什麼 時間 誰 方法 引數(空) 是否重複
[self addTimer];
}
/** 新增定時器 */
- (void)addTimer
{
self.timer = [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(nextImage) userInfo:nil repeats:YES];
// 在移動其他東西時 scrollView 會停 所以要分出一些時間 給scrollview
// 涉及到 單執行緒~多執行緒
[[NSRunLoop currentRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes];
}
/** 移除定時器 */
- (void)removeTimer
{
[self.timer invalidate];
self.timer = nil;
}
- (void)nextImage
{
// 增加pageControl的頁數
NSInteger page = 0;
if(self.pageControl.currentPage == JTImageCount - 1)
{
page = 0;
//NSLog(@"0-%ld",page);
}
else{
page = self.pageControl.currentPage   1;
//NSLog(@"1-%ld",page);
}
// 計算 scrollView 的滾動位置
CGFloat offsetX = page * self.scrollView.frame.size.width;
CGPoint offset = CGPointMake(offsetX, 0);
[self.scrollView setContentOffset:offset animated:YES];
}
/** 正在滾動 就會呼叫 */
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
// 根據pageControl 的滾動長度 來顯示第幾頁
int page = (scrollView.contentOffset.x   scrollView.frame.size.width * 0.5) / scrollView.frame.size.width;
self.pageControl.currentPage = page;
}
/** 開始拽動的時候 */
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
// 停止定時器 (一次性的)下次用時再建立
[self removeTimer];
}
/** 完全 停止拖拽 的時候呼叫 */
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
// 建立新的 定時器
[self addTimer];
}
@end