UIPageControl的一个Demo

本文详细介绍如何使用自定义UIPageControl实现流畅的页面切换效果。通过创建UIScrollView并添加图片,配合MyPageControl组件,实现了页面间的平滑过渡及底部指示点的动态更新。

本篇文章只是记录了一个自定义UIPageControl 的制作,其实很简单的   源码在底部会奉上链接,还望多多交流,多多支持

首先效果图如下:

首先先做一个UISCrollView

// 建议这样做,可以避免内存的泄露

 

UIScrollView *scrol = [[UIScrollViewalloc]init];

    self.scrol = scrol;

    [scrol release];

    

    MyPageControl *page = [[MyPageControlalloc]init];

    self.pageControl = page;

    [page release];


   //  设置UIScrollView的一些属性

    self.scrol.frame =CGRectMake(0,5,320,150);

    self.scrol.contentSize =CGSizeMake(320*3,150);

    self.scrol.showsHorizontalScrollIndicator =NO;

    self.scrol.pagingEnabled =YES;

    self.scrol.bounces =NO;

    self.scrol.delegate =self;

    

//    这里添加3张图片 做演示用

    for (int i = 0; i<3; i++) {

        UIImageView *imgv = [[UIImageViewalloc]initWithImage:[UIImageimageNamed:@"default_pic.png"]];

        imgv.frame = CGRectMake(i*320,0,320, 150);

        [self.scroladdSubview:imgv];

        [imgv release];

    }

    [self.viewaddSubview:self.scrol];

    

    //   添加图片下方的阴影   

    UIImageView *img_shade = [[UIImageViewalloc]initWithImage:[UIImageimageNamed:@"shade.png"]];

    img_shade.frame = CGRectMake(0,135,320, 20);

    

    //   下面才是重点   

    CGRect rect =CGRectMake(img_shade.center.x-self.pageControl.frame.size.width/2, img_shade.frame.size.height -20,35,20);

    self.pageControl.frame = rect;  //    设置坐标

    [_pageControlsetCurrentPage:0];//    设置当前显示

    [_pageControlsetNumberOfPages:3];//    设置共几张

    self.pageControl.backgroundColor = [UIColorclearColor];//    设置背景色为无

    [selfsetPageControlPoint];//    这里写了一个方法用来设置图片的颜色,这样做是因为在UIScrollView滑动的时候也能改变颜色

    [self.pageControlsetHidesForSinglePage:YES];//    此属性是说明,当只有一个图片的时候也要显示一个点,默认为NO,即不显示一个点

    

    [img_shade addSubview:self.pageControl];

    

    [self.view addSubview:img_shade];

    [img_shade release];


源码地址:http://download.youkuaiyun.com/detail/zgcrichard/6224757


 

转载于:https://www.cnblogs.com/james1207/p/3306415.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值