博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS 6编程-UIScrollView滚动视图和UIPageControl分页控件的简单应用
阅读量:5286 次
发布时间:2019-06-14

本文共 2376 字,大约阅读时间需要 7 分钟。

写了一个简单的iOS App,演示UIScrollView滚动视图和UIPageControl分页控件的简单应用。

本App功能是:在每一页显示不同背景演示的页面。UIScrollView滚动视图和UIPageControl分页控件进行关联,滚动到新的页面时,分页控件也会同步切换到新的页面,反之也如此。

示例App 最终运行界面如下:

开发工具:Xcode 4.5 + iOS 6 模拟器

创建项目ColorScroll,类前缀也设置为ColorScroll,如下图所示。

下面是本示例项目的完整源代码,代码中有比较完整的注释。

ColorScrollViewController.h 头文件代码:

#import <UIKit/UIKit.h>

@interface ColorScrollViewController : UIViewController<UIScrollViewDelegate>

// 滚动视图输出口
@property (strong, nonatomic) IBOutlet UIScrollView *scrollView;
// 分页控件输出口
@property (strong, nonatomic) IBOutlet UIPageControl *pageControl;

// 连接分页控件的value changed事件

- (IBAction)changePage:(id)sender;

@end

ColorScrollViewController.m 实现文件代码:

#import "ColorScrollViewController.h"

@interface ColorScrollViewController ()

@end

@implementation ColorScrollViewController

- (void)viewDidLoad

{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.

NSArray *colors = [NSArray arrayWithObjects:

[UIColor redColor],
[UIColor greenColor],
[UIColor blueColor],
[UIColor yellowColor], nil];

self.scrollView.frame = CGRectMake(0, 0, 320, 410);

for (int i=0; i<colors.count; i++) {

CGRect frame;
frame.origin.x = self.scrollView.frame.size.width *i;
frame.origin.y = 0;
frame.size = self.scrollView.frame.size;

UIView *subView = [[UIView alloc] initWithFrame:frame];

subView.backgroundColor = [colors objectAtIndex:i];
[self.scrollView addSubview:subView];
}
// 设置scroll view的contentSize属性,这个是包含所有页面的scroll view的尺寸
self.scrollView.contentSize = CGSizeMake(self.scrollView.frame.size.width*colors.count, self.scrollView.frame.size.height);

// 告诉分页控件-总共有多少页

self.pageControl.numberOfPages = colors.count;
}

- (void)scrollViewDidScroll:(UIScrollView *)scrollView{

CGFloat pageWidth = self.scrollView.frame.size.width;
// 在滚动超过页面宽度的50%的时候,切换到新的页面
int page = floor((self.scrollView.contentOffset.x + pageWidth/2)/pageWidth) ;
self.pageControl.currentPage = page;
}

- (void)didReceiveMemoryWarning

{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}

 

 

- (IBAction)changePage:(id)sender {

// 更新Scroll View到正确的页面
CGRect frame;
frame.origin.x = self.scrollView.frame.size.width * self.pageControl.currentPage;
frame.origin.y = 0;
frame.size = self.scrollView.frame.size;
[self.scrollView scrollRectToVisible:frame animated:YES];
}
@end

转载于:https://www.cnblogs.com/tuncaysanli/archive/2012/10/17/2727983.html

你可能感兴趣的文章
对SPI、IIC、IIS、UART、CAN、SDIO、GPIO的解释
查看>>
Thymeleaf模板格式化LocalDatetime时间格式
查看>>
庖丁解“学生信息管理系统”
查看>>
Pyltp使用
查看>>
其他ip无法访问Yii的gii,配置ip就可以
查看>>
php做的一个简易爬虫
查看>>
x的x次幂的值为10,求x的近似值
查看>>
jquery获取html元素的绝对位置和相对位置的方法
查看>>
ios中webservice报文的拼接
查看>>
Power BI 报告的评论服务支持移动设备
查看>>
ACdream 1068
查看>>
HDU 2665 Kth number
查看>>
记叙在人生路上对你影响最大的三位老师
查看>>
002.大数据第二天
查看>>
python装饰器
查看>>
树上的路径
查看>>
问题总结
查看>>
软件随笔
查看>>
Linux下SVN自动更新web [转]
查看>>
Openstack api 学习文档 & restclient使用文档
查看>>