UIScrollView 与 UIPageView 的联合使用
{
UIScrollView * scrollView;
UIPageControl * pageControl;
// BOOL pageControlIsChangingPage;
NSMutableArray * images;
}
//- (void)changePage:(id)sender;
- (void)setupPage;
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
self.view.backgroundColor = [UIColor blackColor];
scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 400)];
pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(0, 410, 320, 36)];
images = [NSMutableArray arrayWithObjects:@"h1.jpeg",@"h2.jpeg",@"h3.jpeg",@"h4.jpeg",@"h5.jpeg",@"h6.jpeg",@"h7.jpeg",@"h8.jpeg", nil];
[self.view addSubview:scrollView];
[self.view addSubview:pageControl];
[self setupPage];
}
////多余的方法
//- (void)changePage:(id)sender
//{
//
// NSLog(@"%s",__func__);
// CGRect frame = scrollView.frame;
//
// frame.origin.x = frame.size.width * pageControl.currentPage;
// frame.origin.y = 0;
//
// [scrollView scrollRectToVisible:frame animated:YES];
//
// pageControlIsChangingPage = YES;
//
//}
- (void)setupPage
{
NSLog(@"%s",__func__);
scrollView.delegate = self;
[scrollView setBackgroundColor: [UIColor blackColor]];
//
[scrollView setCanCancelContentTouches:NO];
scrollView.indicatorStyle = UIScrollViewIndicatorStyleWhite ;
// //
// scrollView.clipsToBounds = YES;
//
// scrollView.scrollEnabled = YES;
scrollView.pagingEnabled = YES;
// //
// scrollView.directionalLockEnabled = YES;
//
//隐藏滚动条
scrollView.alwaysBounceVertical = NO;
scrollView.alwaysBounceHorizontal = NO;
scrollView.showsHorizontalScrollIndicator = NO;
scrollView.showsVerticalScrollIndicator = NO;
NSInteger nimages = 0;
CGFloat cx = 0 ;//定义下一幅图片的的坐标
//循环导入图片
for(NSString * imagePath in images)
{
// UIImageView * imageView = [[[UIImageView alloc] initWithFrame:CGRectZero]autorelease];
//
// [imageView setBackgroundColor: [UIColor colorWithRed:.6 green:.6 blue:.6 alpha:1.0]];
//
// UIImage * image = [UIImage imageNamed:imagePath];
//
// [imageView setImage:image];
UIImageView * imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:imagePath]];
CGRect rect = scrollView.frame;
rect.size.height = scrollView.frame.size.height;
rect.size.width = scrollView.frame.size.width;
rect.origin.x = cx;
rect.origin.y = 0;
imageView.frame = rect;
imageView.contentMode = UIViewContentModeScaleAspectFill;
[scrollView addSubview:imageView];
cx += scrollView.frame.size.width;
nimages ++;
}
// //不必要的事件
// [pageControl addTarget:self action:@selector(changePage:) forControlEvents:UIControlEventValueChanged];
pageControl.currentPage = 0;
pageControl.numberOfPages = nimages;
pageControl.tag = 0;
[scrollView setContentSize:CGSizeMake(cx, [scrollView bounds].size.height)];
}
//scrollViewkai
- (void)scrollViewDidScroll:(UIScrollView *)_scrollView
{
NSLog(@"%s",__func__);
// if(pageControlIsChangingPage)
// {
// return;
// }
//画面拖动超过百分之五十进行切换
//返回page的值
CGFloat pageWidth = _scrollView.frame.size.width;
//函数名: floor 功 能: 返回小于或者等于指定表达式的最大整数
//函数名: ceil 功 能: 返回大于或者等于指定表达式的最小整数
int page = floor((_scrollView.contentOffset.x - pageWidth/2)/pageWidth)+1;
pageControl.currentPage = page;
}
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
NSLog(@"%s",__func__);
// pageControlIsChangingPage = NO;
}
- (void)dealloc
{
[images release];
[scrollView release];
[pageControl release];
[super dealloc];
}
UIScrollView 与 UIPageView 的联合使用的更多相关文章
- Dynamics CRM 之ADFS 使用 WID 的独立联合服务器
ADFS 的使用 WID 的独立联合服务器适用于自己的测试环境,常用的就是在虚机中使用. 拓扑图如下: wID:联合身份验证服务配置为使用 Windows 内部数据库
- Dynamics CRM 之ADFS 使用 WID 的联合服务器场
使用 WID 的联合服务器场 默认拓扑 Active Directory 联合身份验证服务 (AD FS) 是联合服务器场,使用 Windows 内部数据库 (WID). 在这种拓扑, AD FS 使 ...
- 【原】Masonry+UIScrollView的使用注意事项
[原]Masonry+UIScrollView的使用注意事项 本文转载请注明出处 —— polobymulberry-博客园 1.问题描述 我想实现的使用在一个UIScrollView依次添加三个UI ...
- Hibernate(5)—— 联合主键 、一对一关联关系映射(xml和注解) 和 领域驱动设计
俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及的知识点总结如下: One to One 映射关系 一对一单向外键(XML/Annotation) 一对一双向外键关联(XML/A ...
- Federated Identity Pattern 联合身份模式
Delegate authentication to an external identity provider. This pattern can simplify development, min ...
- [占位-未完成]scikit-learn一般实例之十一:异构数据源的特征联合
[占位-未完成]scikit-learn一般实例之十一:异构数据源的特征联合 Datasets can often contain components of that require differe ...
- SQL联合查询:子表任一记录与主表联合查询
今天有网友群里提了这样一个关于SQL联合查询的需求: 一.有热心网友的方案: 二.我的方案: select * from ( select a.*,(select top 1 Id from B as ...
- Dynamics CRM 之ADFS 使用 SQL Server 的联合服务器场
此拓扑用于 Active Directory 联合身份验证服务 (AD FS) 不同于使用 Windows 内部数据库 (WID) 部署拓扑,因为不会将数据复制到每台联合服务器场中的联合身份验证服务器 ...
- Dynamics CRM 之ADFS 使用 WID 和代理的联合服务器场
为此部署拓扑 Active Directory 联合身份验证服务 (AD FS) 等同于联合服务器场与 Windows 内部数据库 (WID) 拓扑中,但它将代理服务器计算机添加到外围网络,以支持外部 ...
随机推荐
- 【BZOJ1031】[JSOI2007]字符加密Cipher 后缀数组
[BZOJ1031][JSOI2007]字符加密Cipher Description 喜欢钻研问题的JS同学,最近又迷上了对加密方法的思考.一天,他突然想出了一种他认为是终极的加密办法 :把需要加密的 ...
- Android应用程序窗口(Activity)的绘图表面(Surface)的创建过程分析
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8303098 在前文中,我们分析了应用程序窗口连 ...
- 【二分答案】 【POJ3497】 【Northwestern Europe 2007】 Assemble 组装电脑
Assemble Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 3171 Accepted: 1013 Descript ...
- 80端口被NT kernel & System 占用pid= 4的解决方法
引用http://www.2cto.com/os/201111/111269.html的方法.亲测可用 该进程是Http.sys.它是http API的驱动组件,Http栈服务器.如果该端口被Http ...
- 新博客 Fighting
C3 Viso绘图 的 几种关系
- isNUll ,对于sql中的一个表的description的NULL和空格的处理
select client.clientname ,description,'client2'= case when client.Description IS NULL then client.c ...
- 数据库 count和sum区别
最近备考软考,复习数据库时候,发现count和sum,貌似差不错.就仔细查了查. 表 人 id name number 1 贱人 3 2 好人 4 select count(number) from ...
- Java多线程编程总结(精华)
Java多线程编程总结 2007-05-17 11:21:59 标签:多线程 java 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http ...
- humble number(hd1058)
Problem Description A number whose only prime factors are 2,3,5 or 7 is called a humble number. The ...
- std::map的insert和下标[]访问
在map中插入元素 改变map中的条目非常简单,因为map类已经对[]操作符进行了重载 enumMap[1] = "One";enumMap[2] = "Two" ...