实现一个简单的滚动视图

来源:互联网 发布:ni 高速数据采集卡 编辑:程序博客网 时间:2024/05/20 04:26

程序的大部分


@interface BIDViewController : UIViewController


//可滚动页面

@property (retain, nonatomic) UIScrollView *scrollView;

//页点

@property (retain, nonatomic) UIPageControl *pageControl;

//保存图片的数组

@property (retain, nonatomic) NSMutableArray *imageArray;


@end





@implementation BIDViewController


- (void)viewDidLoad

{

[super viewDidLoad];


//创建可滑动视图

UIScrollView *tempView = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, 320, 460)];

self.scrollView = tempView;

[tempView release];

//创建页点

UIPageControl *tempPage = [[UIPageControl alloc]initWithFrame:CGRectMake(0, 420, 320, 36)];

[tempPage setBackgroundColor:[UIColor clearColor]];

[tempPage setAlpha:1];

self.pageControl = tempPage;

//[tempPage release];

//初始化数组,将图片压入数组

self.imageArray = [NSMutableArray arrayWithObjects:

[UIImage imageNamed:@"html5.png"],

[UIImage imageNamed:@"jQuery.png"],

[UIImage imageNamed:@"iphone1.png"],

[UIImage imageNamed:@"iphone2.png"], nil];

//将滚动视图和翻页视图添加到视图中

[self.view addSubview:self.scrollView];

[self.view addSubview:self.pageControl];


self.view.backgroundColor = [UIColor whiteColor];

[self createsCrollView:nil];


}


#pragma ------创建视图区域----------

//创建滚动视图区域

- (void)createsCrollView:(id)sender

{

//设置委托

self.scrollView.delegate = self;

//将是否取消对内容视图触摸的反应设为NO

self.scrollView.canCancelContentTouches = NO;

//设置滚动条类型

self.scrollView.indicatorStyle = UIScrollViewIndicatorStyleWhite;

//是否可以缩放

self.scrollView.scrollEnabled = YES;

//是否可以进行页面切换

self.scrollView.pagingEnabled = YES;

NSUInteger page = 0;//为了记录页数

int originX = 0;

//填充滑动视图内容

for (UIImage *image in self.imageArray) {

//首先创建一个视图

UIImageView *imageview = [[UIImageView alloc]initWithFrame:CGRectZero];

//为这个图片设置适当位置

CGRect rect ;

rect.origin.x = originX;

rect.origin.y = 0;

rect.size.width = self.scrollView.frame.size.width;

rect.size.height = self.scrollView.frame.size.height;

imageview.frame = rect;

//设置图片为背景

imageview.image = image;

//添加到视图中

[self.scrollView addSubview:imageview];

[imageview release];

//确定下张图片开始的x坐标

originX += self.scrollView.frame.size.width;

//记录页数

page++;

}

//设置总页数

self.pageControl.numberOfPages = page;

//设置默认页为首页

self.pageControl.currentPage = 0;

self.pageControl.tag = 100;

//为页数控制关联方法

[self.pageControl addTarget:self action:@selector(changePage:) forControlEvents:UIControlEventValueChanged];

//显示适当区域

[self.scrollView setContentSize:CGSizeMake(originX, self.scrollView.frame.size.height)];

}


//点击小点切换页面

- (void)changePage:(id)sender

{

//创建一个区域

CGRect rect;

rect.origin.x = self.pageControl.currentPage * self.scrollView.frame.size.width;

rect.origin.y = 0;

rect.size.width = self.scrollView.frame.size.width;

rect.size.height = self.scrollView.frame.size.height;

//设置滚动视图的可视区域

[self.scrollView scrollRectToVisible:rect animated:YES];

}



//重写滑动结束后的反应,就是把pageConteol的当前页跟随滑动而动

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView

{

//取滚动视图区域的宽

float orginX = self.scrollView.frame.size.width;

//利用当前视图显示区域到view.frame的偏移量,来换算获取当前处在第几页

int page = ((self.scrollView.contentOffset.x - orginX))/orginX +1;

//当前页改为这一页。

self.pageControl.currentPage = page;

}

0 0
原创粉丝点击