iOS開發UI篇----UI基礎之美女輪播器(自動輪播)2

來源:互聯網
上載者:User

標籤:

////  ViewController.m//  圖片輪播器-(自動)////  Created by rms on 15/11/28.//  Copyright © 2015年 rms. All rights reserved.//#import "ViewController.h"#define kIMAGECOUNT 8@interface ViewController ()<UIScrollViewDelegate>@property(nonatomic,strong) UIScrollView *scrollView;@property(nonatomic,strong) UIImageView *leftImageView;@property(nonatomic,strong) UIImageView *centerImageView;@property(nonatomic,strong) UIImageView *rightImageView;@property(nonatomic,strong)UIPageControl *pageControl;@property(nonatomic,strong)NSTimer *timer;@end@implementation ViewController- (void)viewDidLoad {    [super viewDidLoad];    CGFloat width = self.view.frame.size.width;    CGFloat height = self.view.frame.size.height;        UIScrollView *scrollView = [[UIScrollView alloc]initWithFrame:self.view.bounds];    [self.view addSubview:scrollView];        UIPageControl *pageControl = [[UIPageControl alloc]initWithFrame:CGRectMake(0, height - 100, width, 20)];    pageControl.numberOfPages = kIMAGECOUNT;        pageControl.currentPageIndicatorTintColor = [UIColor redColor];    pageControl.pageIndicatorTintColor = [UIColor blackColor];    [self.view addSubview:pageControl];        self.pageControl = pageControl;        scrollView.contentSize = CGSizeMake(width * (kIMAGECOUNT + 2), 0);       scrollView.contentOffset = CGPointMake(width, 0);    scrollView.pagingEnabled = YES;        self.scrollView = scrollView;    scrollView.delegate = self;    //31231        [self imageViewWithFrame:CGRectMake(0, 0, width, height) imageName:[NSString stringWithFormat:@"%02d",kIMAGECOUNT]];    [self imageViewWithFrame:CGRectMake(width * (kIMAGECOUNT + 1), 0, width, height) imageName:@"01.jpg"];        for (int i = 1; i < kIMAGECOUNT + 1; i++) {        [self imageViewWithFrame:CGRectMake(width * i, 0, width, height) imageName:[NSString stringWithFormat:@"%02d",i]];    }            [self startTimer];}-(UIImageView *)imageViewWithFrame:(CGRect)frame imageName:(NSString *)imageName{    UIImageView *imageView = [[UIImageView alloc]initWithFrame:frame];    imageView.image = [UIImage imageNamed:imageName];        imageView.contentMode = UIViewContentModeScaleAspectFit;        imageView.clipsToBounds = YES;    [self.scrollView addSubview:imageView];    return imageView;}/開啟一個全新的定時器- (void) startTimer{    //  定時器    //  scheduled 調度(執行)    //   Interval 間隔的時間 (s)    //  target 目標(調用誰的方法)    //  selector 方法(調用哪一個方法)    //  repeats 是否需要重複執行//  做了兩件事 1.建立NSTimer的對象//           2。把這個NSTimer以預設形式添加到了主運行迴圈中 (預設優先順序低於事件處理的優先順序)//    self.timer = [NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(nextImage) userInfo:nil repeats:YES];    // 1.建立NSTimer對象    NSTimer *timer  = [NSTimer timerWithTimeInterval:2 target:self selector:@selector(nextImage) userInfo:nil repeats:YES];// 2.添加到主運行迴圈中//  Run 運行 Loop 迴圈//  NSDefaultRunLoopMode 預設模式(低於事件處理優先順序)//  NSRunLoopCommonModes 通用模式 (於事件處理的優先順序相同)    [[NSRunLoop mainRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];    // 3.記錄當前的timer    self.timer = timer;}-(void)nextImage{    NSInteger page = self.pageControl.currentPage;        if (page == self.pageControl.numberOfPages - 1) {                page = 0;//        [UIView animateWithDuration:1 animations:^{            self.scrollView.contentOffset = CGPointMake(self.scrollView.frame.size.width * (page+1), 0);//        }];    }else{        page++;        [UIView animateWithDuration:1 animations:^{            self.scrollView.contentOffset = CGPointMake(self.scrollView.frame.size.width * (page+1), 0);        }];            }    }- (void) scrollViewWillBeginDragging:(UIScrollView *)scrollView{    //  停止定時器    //  讓定時器失效,一旦失效就不能在使用了。    [self.timer invalidate];}/** *  當使用者的手指從scrollViwew上抬起的時候執行這個方法 */- (void) scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{    //  重新開始調度    [self startTimer];    }-(void)scrollViewDidScroll:(UIScrollView *)scrollView{    CGPoint offset = scrollView.contentOffset;    int page = round(offset.x / scrollView.frame.size.width);    NSLog(@"%d",page);    self.pageControl.currentPage = page - 1;    if (page == kIMAGECOUNT + 1) {        scrollView.contentOffset = CGPointMake(scrollView.frame.size.width, 0);    }    if(page == 0){            scrollView.contentOffset = CGPointMake(scrollView.frame.size.width * kIMAGECOUNT, 0);    }}@end

 

iOS開發UI篇----UI基礎之美女輪播器(自動輪播)2

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.