如果想要实现如相册一样,能一页一页的翻动查看图片,或者是实现app的引导界面的图片浏览的效果。那么就要用到
UIScrollView的翻页效果。具体实现的代码如下
#define KImageCount 5
#import "ViewController.h"
@interface ViewController ()<UIScrollViewDelegate>
@property (weak, nonatomic) IBOutletUIScrollView *scrollView;
@property (weak, nonatomic) IBOutletUIPageControl *pageControl;
@end
@implementation ViewController
- (void)viewDidLoad
{
[superviewDidLoad];
self.scrollView.delegate =self;
//一些固定的尺寸参数
CGFloat imageH =self.scrollView.frame.size.height;
CGFloat imageW =self.scrollView.frame.size.width;
CGFloat imageY =0;
//添加5张图片到scrollView中
for (int i =0; i <KImageCount; i++)
{
UIImageView *imageView = [[UIImageViewalloc]init];
// 设置frame
CGFloat imageX = imageW *i;
imageView.frame =CGRectMake(imageX, imageY, imageW, imageH);
//设置图片
NSString *imageName = [NSStringstringWithFormat:@"img_%02d",i+1];
[imageViewsetImage:[UIImageimageNamed:imageName]];
[self.scrollViewaddSubview:imageView];
}
//设置内容尺寸
CGFloat contentW = imageW *KImageCount;
self.scrollView.contentSize =CGSizeMake(contentW,0);
//隐藏水平滚动条
self.scrollView.showsHorizontalScrollIndicator =NO;
//分页
self.scrollView.pagingEnabled =YES;
// 设置pageControl的总页数
self.pageControl.numberOfPages =KImageCount;
}
#pragma mark - 代理方法
/**
* 当scrollView正在滚动就会调用
*/
-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
// 根据scrollView的滚动位置决定pageControl显示第几页
CGFloat contentOffX =self.scrollView.contentOffset.x;
CGFloat scrollViewW =self.scrollView.frame.size.width;
int pageCount = (contentOffX +0.5*scrollViewW)/scrollViewW;
self.pageControl.currentPage = pageCount;
}
- (void)didReceiveMemoryWarning
{
[superdidReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end