@interface ViewController : UIViewController<UIScrollViewDelegate>

{

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 的联合使用的更多相关文章

  1. Dynamics CRM 之ADFS 使用 WID 的独立联合服务器

    ADFS 的使用 WID 的独立联合服务器适用于自己的测试环境,常用的就是在虚机中使用. 拓扑图如下: wID:联合身份验证服务配置为使用 Windows 内部数据库

  2. Dynamics CRM 之ADFS 使用 WID 的联合服务器场

    使用 WID 的联合服务器场 默认拓扑 Active Directory 联合身份验证服务 (AD FS) 是联合服务器场,使用 Windows 内部数据库 (WID). 在这种拓扑, AD FS 使 ...

  3. 【原】Masonry+UIScrollView的使用注意事项

    [原]Masonry+UIScrollView的使用注意事项 本文转载请注明出处 —— polobymulberry-博客园 1.问题描述 我想实现的使用在一个UIScrollView依次添加三个UI ...

  4. Hibernate(5)—— 联合主键 、一对一关联关系映射(xml和注解) 和 领域驱动设计

    俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及的知识点总结如下: One to One 映射关系 一对一单向外键(XML/Annotation) 一对一双向外键关联(XML/A ...

  5. Federated Identity Pattern 联合身份模式

    Delegate authentication to an external identity provider. This pattern can simplify development, min ...

  6. [占位-未完成]scikit-learn一般实例之十一:异构数据源的特征联合

    [占位-未完成]scikit-learn一般实例之十一:异构数据源的特征联合 Datasets can often contain components of that require differe ...

  7. SQL联合查询:子表任一记录与主表联合查询

    今天有网友群里提了这样一个关于SQL联合查询的需求: 一.有热心网友的方案: 二.我的方案: select * from ( select a.*,(select top 1 Id from B as ...

  8. Dynamics CRM 之ADFS 使用 SQL Server 的联合服务器场

    此拓扑用于 Active Directory 联合身份验证服务 (AD FS) 不同于使用 Windows 内部数据库 (WID) 部署拓扑,因为不会将数据复制到每台联合服务器场中的联合身份验证服务器 ...

  9. Dynamics CRM 之ADFS 使用 WID 和代理的联合服务器场

    为此部署拓扑 Active Directory 联合身份验证服务 (AD FS) 等同于联合服务器场与 Windows 内部数据库 (WID) 拓扑中,但它将代理服务器计算机添加到外围网络,以支持外部 ...

随机推荐

  1. java开发中遇到的问题及解决方法(持续更新)

    摘自 http://blog.csdn.net/pony12/article/details/38456261 java开发中遇到的问题及解决方法(持续更新) 工作中,以C/C++开发为主,难免与其他 ...

  2. CDH 2、Cloudera Manager的安装

    1.Cloudera Manager • Cloudera Manager是一个管理CDH的端到端的应用. • 作用: – 管理 – 监控 – 诊断 – 集成 • 架构 • Server – 管理控制 ...

  3. Jekins安装

    1. Jekins支持多系统:windows, mac,linux 2. Jekins安装方式有三种:直接war文件安装,安装包安装,将war文件放到web容器安装 3. 在windows下安装 a. ...

  4. 布局文件提示错误“No orientation specified, and the default is horizontal. This is a common so...”

    完整的错误提示信息为:No orientation specified, and the default is horizontal. This is a common source of bugs ...

  5. dom4j解析XML的CURD操作

    在开发JavaWeb项目中通常是利用XML配置文件来提高应用程序的访问效率,而在配置XML的同时,更多时候是对XML进行解析. 一.解析XML配置文件有两种机制: DOM和SAX的机制: DOM是将整 ...

  6. oracle常用查询三

    查询跟索引有关的数据字典时,可以用下面这条SQL语句: SQL>select * from dictionary where instr(comments,'index')>0; 如果我们 ...

  7. oracle Recyclebin

    每个用户都有自己的Recycle Bin.删除的对象不会永久存储在Recycle Bin中,Oracle会按照一定的规则自动清除里面的内容,如没有足够的空间.执行show recyclebin时只列出 ...

  8. 关于mysql binlog日志的格式说明

    Binary Log 记录方式 Row Level Binary Log会记录成每一行数据被修改的形式,然后在Slave端再对相同的数据进行修改. 如果修改了表的结构,那么binlog日志记录的是重新 ...

  9. Xshell同时向多个会话发送指令的方法

    我们平时使用XSHELL.SecureCRT.putty等ssh连接工具连接到远程主机,每次输入指令都是在单一会话窗口,如果有很多台会话,需要同时输入同样的指令,我们就不用一一输入,浪费时间和精力.可 ...

  10. how to install tweepy

    首先,设置环境变量: 在path 里面 添加: C:\Python27 , 这是python的安装目录. 打开CMD, 复制 setup.py的目录:C:\Users\Administrator\De ...