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) 拓扑中,但它将代理服务器计算机添加到外围网络,以支持外部 ...
随机推荐
- [Oracle] Data Guard 系列(5) - 创建逻辑备库
在创建逻辑备库之前,必须得先创建物理备库,关于如何创建物理备库,请参考<Data Guard 系列(4) - 在不停主库的情况下创建物理备库>. 1. 在物理备库上停止日志应用服务 SYS ...
- hdu 5626 Clarke and points
Problem Description Clarke is a patient with multiple personality disorder. One day he turned into a ...
- Unity 代码规范(PlateFace)1.0版本
PlateFace Unity开发规范(1.0) 1.项目都采用英文名命名,图片,音频,资源都不能采用中文. 2.方法名: 帕斯卡命名(所有单词首字母大写) 3.字段: 在Unity中组件字段名第一个 ...
- 一些常用运行命令和CMD命令
运行命令 1. 进入服务页面的命令: services.msc 2. 远程连接命令:mstsc.exe 3. 配置电脑启动项 msconfig 4. 计算器 calc.exe 5. 设定关机时间(se ...
- JSP中的include的两种用法
1.两种用法 <%@ include file=” ”%> <jsp:include page=” ” flush=”true”/> 2.用法区别 (1)执行时间上区别 < ...
- 【设计模式:单例模式】使用单例模式载入properties文件
先准备測试程序: package org.jediael.util; import static org.junit.Assert.*; import org.junit.Test; public c ...
- 使用一个HttpModule拦截Http请求,来检测页面刷新(F5或正常的请求)
在Web Application中,有个问题就是:“我怎么来判断一个http请求到底是通过按F5刷新的请求还是正常的提交请求?” 相信了解ASP.NET的人知道我在说什么,会有同感,而且这其实不是一个 ...
- 为什么JavaScript函数中的参数前面不能加var
首先这里是JavaScript的语法规则. 其次在调用function()函数的时候参数时外部传入的.在传入之前就已经被声明了.没必要在函数参数里声明. 如果想要在函数里用新的参数 function( ...
- oracle使用还原段的目的和还原数据的管理方法及还原段的类型
一.引入还原段主要有3个目的: 1.事务回滚:主要是针对rollback语句起作用 2.事务恢复:非正常关闭数据库即非保留事务级关闭数据库(abort.immediate)或者数据库instance崩 ...
- PHP header() http各种状态码大全查询
PHP header()the function declaration: void header ( string string [, bool replace [, int http_respon ...