@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. 【转】android 电池(二):android关机充电流程、充电画面显示

    关键词:android 电池关机充电 androidboot.mode charger关机充电 充电画面显示 平台信息:内核:linux2.6/linux3.0系统:android/android4. ...

  2. IOS 定位 单例

    + (SCLocationController *)sharedController { static SCLocationController *sharedController = nil; st ...

  3. MediaPlayer本地播放流程解析(一)

    应用场景: MediaPlayer mediaPlayer = new MediaPlayer(); mediaPlayer.setOnCompletionListener(new OnComplet ...

  4. HDU2093 字符串2种不错的读入思路

    <span style="font-family: 'Times New Roman'; font-size: 12px; background-color: rgb(255, 255 ...

  5. 更改yum网易 阿里云的yum源。

    一,鉴于用国外的Yum源,速度比较慢,所以想到将国外的yum源,改为国内的Yum源,著名的有网易 阿里云源.如何更改呢? 二,更改yum源为网易的. 首先备份/etc/yum.repos.d/Cent ...

  6. PPTP协议握手流程分析

    一  PPTP概述 PPTP(Point to Point Tunneling Protocol),即点对点隧道协议.该协议是在PPP协议的基础上开发的一种新的增强型安全协议,支持多协议虚拟专用网,可 ...

  7. margin四个属性的顺序

    margin-top ,margin-right ,margin-bottom ,margin-left .方向为 上右下左,顺时针方向, 值可以是: 百分比(基于父对象总高度或宽度的百分比) 长度值 ...

  8. Jq合成事件绑定

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. DOM重绘对focus的影响

    在处理获取焦点时一直不能获取到. 搜索了下资料是因为 当DOM的变化影响了元素的几何属性(宽和高),浏览器需要重新计算元素的几何属性,同样其他元素的几何属性和位置也会因此受到影响. 重排:浏览器会使渲 ...

  10. Uncaught TypeError: Object [object Object] has no method 'live'

    $( selector ).live( events, data, handler );                // jQuery 1.3+$( document ).delegate( se ...