UIScrollView的分页效果的实现

如果想要实现如相册一样,能一页一页的翻动查看图片,或者是实现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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值