標籤:
滾視圖的用途很普遍,掌握一些基本用法是必須的,以下是一些基本的用法:
#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 的基本用法