iOS UIScrollView 的基本用法

來源:互聯網
上載者:User

標籤:

滾視圖的用途很普遍,掌握一些基本用法是必須的,以下是一些基本的用法:

 

#import <UIKit/UIKit.h>

//宏定義

#define Width 300

#define Height 300

#define X 60

#define Y 100

@interface ViewController : UIViewController<UIScrollViewAccessibilityDelegate>

 

@property(strong,nonatomic) UIScrollView *MyScrollView;

//頁碼

@property(strong,nonatomic) UIPageControl *MyPageControl;

//儲存圖片的集合

@property(strong,nonatomic) NSMutableArray *imagesArray;

//當前頁碼

@property(assign,nonatomic) int CurrentPage;

 

@property(strong,nonatomic) UIImageView *FirstImage ;

@property(strong,nonatomic) UIImageView *SecondImage ;

@property(strong,nonatomic) UIImageView *ThirdImage ;

@end

//建立滾視圖

    self.MyScrollView=[[UIScrollView alloc] initWithFrame:CGRectMake(X, Y, Width,Height)];

    self.MyScrollView.backgroundColor=[UIColor grayColor];

    self.MyScrollView.contentSize=CGSizeMake(Width*3,0);

    self.MyScrollView.delegate=self;

    self.MyScrollView.pagingEnabled=YES;

    self.MyScrollView.showsHorizontalScrollIndicator=NO;

    [self.view addSubview:self.MyScrollView];

    

    //初始化儲存圖片的集合

    

 

    self.imagesArray=[NSMutableArray arrayWithCapacity:100];

    for (int i=1; i<7; i++)

    {

        UIImage *images=[UIImage imageNamed:[NSString stringWithFormat:@"%d.png",i]];

        [self.imagesArray addObject:images];

    }

    

    self.FirstImage=[[UIImageView alloc] init];

    self.SecondImage=[[UIImageView alloc] init];

    self.ThirdImage=[[UIImageView alloc] init];

    

    self.CurrentPage=0;

    

  

     //設定分頁

    self.MyPageControl=[[UIPageControl alloc] init];

    CGSize page=CGSizeMake(120, 44);

    self.MyPageControl.frame=CGRectMake((400-page.width)/2, 370, page.width, page.height);

    self.MyPageControl.numberOfPages=6;

    self.MyPageControl.currentPage=0;

    //當前頁碼的顏色

    self.MyPageControl.currentPageIndicatorTintColor=[UIColor greenColor];

    //指定頁碼顏色

    self.MyPageControl.pageIndicatorTintColor=[UIColor purpleColor];

    [self.view addSubview:self.MyPageControl];

    //重新整理

    [self reloadImage];

}

 

-(void)reloadImage

{

    //第一種情況 顯示圖片在第一頁 是最後一張圖片

    if (self.CurrentPage==0)

    {

        self.FirstImage.image=[self.imagesArray lastObject];

        self.SecondImage.image=[self.imagesArray objectAtIndex:self.CurrentPage];

        self.ThirdImage.image=[self.imagesArray objectAtIndex:self.CurrentPage+1];

    }

    //第二種情況 顯示圖片在最後一頁  是前面一張圖片

    else if (self.CurrentPage==self.imagesArray.count-1)

    {

        self.FirstImage.image=[self.imagesArray objectAtIndex:self.CurrentPage-1];

        self.SecondImage.image=[self.imagesArray objectAtIndex:self.CurrentPage];

        self.ThirdImage.image=[self.imagesArray objectAtIndex:0];

    }

    //中間頁 顯示圖片按正常順序開始

    else

    {

        self.FirstImage.image=[self.imagesArray objectAtIndex:self.CurrentPage-1];

        self.SecondImage.image=[self.imagesArray objectAtIndex:self.CurrentPage];

        self.ThirdImage.image=[self.imagesArray objectAtIndex:self.CurrentPage+1];

    }

    //預設是 NO

    self.FirstImage.userInteractionEnabled=YES;

    //圖片的架構大小

    self.FirstImage.frame=CGRectMake(0,0,Width,Height);

    self.SecondImage.frame=CGRectMake(Width,0, Width, Height);

    self.ThirdImage.frame=CGRectMake(Width*2,0, Width, Height);

    //把圖片添加到滾動視圖上

    [self.MyScrollView addSubview:self.FirstImage];

    [self.MyScrollView addSubview:self.SecondImage];

    [self.MyScrollView addSubview:self.ThirdImage];

    

    //滾視圖的位移量

    self.MyScrollView.contentOffset=CGPointMake(Width, 0);

    

}

 

#pragma mark  delegate 代理

-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView

{

    float ScroPage=self.MyScrollView.contentOffset.x;

    //向右滑動

    if (ScroPage> 2||ScroPage==2)

    {

        if(self.CurrentPage ==(int)self.imagesArray.count-1)

        {

            self.CurrentPage=0;

        }

        else

        {

            self.CurrentPage++;

        }

    }

    

   //向左滑動

    if (ScroPage<0||ScroPage==0)

    {

        if (self.CurrentPage==0)

        {

            self.CurrentPage =(int)self.imagesArray.count-1;

        }

        else

        {

            self.CurrentPage--;

        }

    }

    self.MyPageControl.currentPage=self.CurrentPage;

    //重新整理

    [self reloadImage];

 

iOS UIScrollView 的基本用法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.