UIScrollView 与 UIPageView 的联合使用

@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];

}

时间: 2024-09-29 17:05:37

UIScrollView 与 UIPageView 的联合使用的相关文章

UIScrollView与分页的联合使用

1.滑动视图的创建,和分页连用 1.创建滑动视图 2.在滑动视图里面添加图片 3.创建分页视图 4.给滑动视图设置代理 5.实现代理方法,使图片翻页的时候,分页也在自己的相应的点上 代理协议方法的实现:当滚动时触发的方法 2.与分页连用,并且可以无限滚动 1.在第一张页面前面加一张与最后一张一样的 2.实现两个协议,滚动时和停止滚动时: (1)滚动时:实现页面的无线循环 (2)停止滚动时:实现点的位置可以随之改变 3.在滚动视图内进行缩放 (1)要想实现滚动并且缩放视图的话,需要设置两个滚动视图

应用程序开发之模仿史上最牛游戏(二)

声明:转载请注明http://www.cnblogs.com/letougaozao/p/3708887.html 新建关卡控制器 自定义UIScrollView 增加UIPageView 每个关卡的View 整体效果展示 一.新建关卡控制器 1??拖线 -修改控制器class -修改控制器的View的class(方便设置背景) -装资源文件 -返回按钮 二.自定义UIScrollView 1??在初始化方法里面做一些事情 -添加四张背景图片 1.创建四个FullView 2.将这四个view加

iOS UIPageView与UIScrollView

在iOS开发中,我们一定会用的类似欢迎界面的东西.当中须要翻页和以下的提示小圆点. 在iOS的实现中,翻页效果是使用UIScrollView.而UIPageView仅仅是加入以下的提示小圆点而已. 以下我贴出详细实现比較简单: // // ADView.m // Ting3 // // Created by 杜甲 on 11/17/14. // Copyright (c) 2014 杜甲. All rights reserved. // #import "ADView.h" @inte

UI开发----UIScrollView和UIPageControl简单模拟滚动视图

//  Created By 郭仔 //================================================== 师傅领进门,修行在个人!自学才是王道! //================================================== UIScrollView: UIScrollView * scrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(20, 50, 200, 200)]

UIScrollView的缩放原理

有些时候,我们可能要对某些内容进行手势缩放,如下图所示 UIScrollView不仅能滚动显示大量内容,还能对其内容进行缩放处理也就是说,要完成缩放功能的话,只需要将需要缩放的内容添加到UIScrollView中 当用户在UIScrollView身上使用捏合手势时,UIScrollView会给代理发送一条消息,询问代理究竟要缩放自己内部的哪一个子控件(哪一块内容) 当用户在UIScrollView身上使用捏合手势时,UIScrollView会调用代理的viewForZoomingInScroll

iOS 视图:重绘与UIScrollView(内容根据iOS编程编写)

我们继续之前的 Hypnosister 应用,当用户开始触摸的时候,圆形的颜色会改变. 首先,在 JXHypnosisView 头文件中声明一个属性,用来表示圆形的颜色. #import "JXHypnosisView.h" @interface JXHypnosisView () /** 颜色 */ @property (nonatomic,strong) UIColor * circleColor; @end @implementation JXHypnosisView - (in

Swift - 用UIScrollView实现视差动画效果

效果 源码 https://github.com/YouXianMing/Swift-Animations // // MoreInfoView.swift // Swift-Animations // // Created by YouXianMing on 16/8/18. // Copyright © 2016年 YouXianMing. All rights reserved. // import UIKit class MoreInfoView: UIView { var imageV

Intel DCM 携手DELL共同推出关于DCIM的联合调研

杰夫克劳斯 英特尔数据中心解决方案总经理 最近由英特尔数据中心管理解决方案DCM和戴尔共同进行的一项调查显示,几乎有一半的IT管理人员并不完全了解他们的数据中心正在发生的变化.数据中心基础设施管理(DCIM)解决方案是了解数据中心如何高效运行的关键,但仅有53%的IT管理者正在使用这种方法.DCIM解决方案可以提供数据中心内部关于热量和能耗使用情况的重要信息,并可以利用这些信息提供可行方案进一步节省数据中心的运营成本. 下面的资讯图表对本次联合调查进行了概括,阐述了与DCIM相关的最佳实践,包括

[NOIP2014]联合权值

描述 无向连通图G有n个点,n-1条边.点从1到n依次编号,编号为i的点的权值为Wi  ,每条边的长度均为1.图上两点(u, v)的距离定义为u点到v点的最短距离.对于图G上的点对(u, v),若它们的距离为2,则它们之间会产生Wu×Wv的联合权值. 请问图G上所有可产生联合权值的有序点对中,联合权值最大的是多少?所有联合权值之和是多少? 输入格式 输入文件名为link.in. 第一行包含1个整数n. 接下来n-1行,每行包含2个用空格隔开的正整数u.v,表示编号为u和编号为v的点之间有边相连.