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) 拓扑中,但它将代理服务器计算机添加到外围网络,以支持外部 ...
随机推荐
- zTree实现清空选中的第一个节点的子节点
zTree实现清空选中的第一个节点的子节点 1.实现源代码 <!DOCTYPE html> <html> <head> <title>zTree实现基本 ...
- 使用Xcode上传代码至GitHub
几乎所有iOS程序员都上过GitHub寻找开源类库,的确,GitHub上有大量优秀的开源类库供大家学习.但是如何在Xcode中上传代码至GitHub呢? (开始之前先安装git,具体方法这里讲的很清楚 ...
- RMAN增量备份-备份保留策略-设置备份集属性
RMAN增量备份:增量备份级别:0,1,2,3,4BACKUP DATABASE也是创建数据库的完整备份,但是这种备份不同于增量备份的0级备份.这种备份不包含增量备份的0级备份,并不支持在此基础上再创 ...
- 【巧妙的模拟】【UVA 10881】 - Piotr's Ants/Piotr的蚂蚁
</pre></center><center style="font-family: Simsun;font-size:14px;"><s ...
- ASP.NET MVC 常用内置验证特性
1.[Required] : 必须输入 [Required(ErrorMessage = "请输入用户名")] 2.[StringLength] : 限制字符串长度 [String ...
- oracle取分组的前N条数据
select * from(select animal,age,id, row_number()over(partition by animal order by age desc) row_num ...
- GridView事件DataBinding,DataBound,RowCreated,RowDataBound区别及执行顺序分析
严格的说,DataBinding,DataBound并不是GridView特有的事件,其他的控件诸如ListBox等也有DataBinding,DataBound事件. DataBinding事件MS ...
- window.location.href("url") 无法在chrome和Firefoxz中使用
今天在js代码中加了一句window.location.href(‘url’)希望实现页面的跳转,IE中可以正常使用,但是Firefox却提示window.location is not a func ...
- linux删除、移动、拷贝时,加-f仍然会提示的解决办法
cp -f 还是提示 root# alias 可以看到,执行cp就等于执行了cp -i,-i是确认提示 alias cp='cp -i' root# vi ~/.bashrc 修改完毕Esc, :wq ...
- Enormous Input Test Solved Problem code: INTEST
import sys import psyco #一键优化库 psyco.full() def main(): n, k = map(int, sys.stdin.readline().strip() ...