IOS页面滚动指示器实现实例

本文作者朱克锋介绍了如何在iOS应用中实现页面滚动指示器,通过一个简单的代码实例展示了如何创建和设置UIScrollView及UIPageControl,以实现类似拉卡拉和盒子支付首页的分页效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作者:朱克锋

邮箱:zhukefeng@iboxpay.com

转载请注明出处:http://blog.youkuaiyun.com/linux_zkf

页面滚动指示器是IOS应用中随处可见的分页方式,如拉卡拉、盒子支付等应用的首页就是这种页面指示器和其它方式相结合的表现,下面我给出一个简单的页面指示器的实现代码,供大家一些学习

头文件声明:

#import <UIKit/UIKit.h>

@interface PageTestViewController :UIViewController <UIScrollViewDelegate>

{

    IBOutlet UIScrollView *scrollView;

UIPageControl *pageControl;

}

@property (nonatomic, retain) UIScrollView *scrollView;

@property (nonatomic, retain) IBOutlet UIPageControl *pageControl;

@end


部分关键代码:

@synthesize scrollView,pageControl;


- (void)viewDidLoad

{

    [superviewDidLoad];

    scrollView = [[[UIScrollViewalloc] initWithFrame:CGRectMake(0.0f,0.0f, 320.0f,400.0f)] autorelease];

scrollView.contentSize =CGSizeZero;

scrollView.pagingEnabled =YES;

scrollView.delegate =self;

[self.viewaddSubview:scrollView];

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

    {

    NSString *filename = [NSStringstringWithFormat:@"image%d.png", i+1];

    UIImageView *iv = [[UIImageViewalloc] initWithImage:[UIImageimageNamed:filename]];

    iv.frame = CGRectMake(i * 320.0f, 0.0f,320.0f, 400.0f);

    [scrollViewaddSubview:iv];

    [iv release];

    }

    [self.viewaddSubview:scrollView];

    pageControl.numberOfPages =3;

     pageControl.currentPage =0;

     [pageControladdTarget:selfaction:@selector(pageScroll::)forControlEvents:UIControlEventValueChanged];

}

- (void) pageScroll: (UIPageControl *) pctrl

{

    int whichPage = pctrl.currentPage;

    [UIViewbeginAnimations:nilcontext:NULL];

    [UIViewsetAnimationDuration:0.3f];

    [UIViewsetAnimationCurve:UIViewAnimationCurveEaseInOut];

    scrollView.contentOffset =CGPointMake(320.0f * whichPage, 0.0f);

    [UIViewcommitAnimations];

}

- (void) scrollViewDidScroll: (UIScrollView *) aScrollView

{

    CGPoint offset = aScrollView.contentOffset;

    pageControl.currentPage = offset.x /320.0f;

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值