UIPageControl+UIScrollView

UIPageControl继承了UIControl基类,默认属于活动控件,它可以与用户进行交互,经常与UIScrollerView结合使用,在实际项目也是经常使用的。当把UIScrollView的pagingEnabled设置为YES之后,UIScrollView至少每次滚动一页。此时通常结合UIPageControl使用,UIPageControl控件会充当两个功能。

使用UIPageControl显示当前的UIScrollView正在显示第几页。

当用户点击UIPageControl控件时程序控制UIScrollView自动滚动到相应的页面。

为将要显示的图片们进行初始化:

coverList=[NSArray arrayWithObjects:@”11.png”,@”22.png”,@”33.png”, nil];

获取图片的个数以备后用:

创建UIScrollPane对象

scrollView=[[UIScrollView alloc]initWithFrame:[[UIScreen mainScreen]bounds]];

创建背景颜色

scrollView.backgroundColor=[UIColor grayColor];

设置可以手动挑动图片

scrollView.pagingEnabled=YES;

设置UIScrollPane的contentSize—就是它可滚动区域的大小

scrollView.contentSize=CGSizeMake(CGRectGetWidth(scrollView.frame)*numberPages, CGRectGetHeight(scrollView.frame));

scrollView.showsHorizontalScrollIndicator=NO;

scrollView.showsVerticalScrollIndicator=NO;

scrollView.scrollsToTop=NO;

设置该控件委托对象

scrollView.delegate=self;

[self.view addSubview:scrollView];

接下来初始化UIPage

pageControl=[[UIPageControl alloc]init];

设置未选中时圆点的颜色

pageControl.pageIndicatorTintColor=[UIColor grayColor];

设置选中高亮时圆点的颜色

pageControl.currentPageIndicatorTintColor=[UIColor redColor];

设置默认在页面数

pageControl.currentPage=0;

设置UIPageControl总共包含多少页

pageControl.numberOfPages=numberPages;

pageControl.hidesForSinglePage=YES;

监听事件:

[pageControl addTarget:self action:@selector(changePage:) forControlEvents:UIControlEventValueChanged];

初始化时默认只需加载、显示第一页的View

[self loadScrollViewWithPage:0];

加载UIScrollPage的指定页对应的控制器

-(void)loadScrollViewWithPage:(NSUInteger)page

{

if (page>=coverList.count) {

return;

}

WXPageController *contorller=[viewControllers objectAtIndex:page];

if ((NSNull *)contorller==[NSNull null]) {

contorller=[[WXPageController alloc]initWithPageNumber:page];

[viewControllers replaceObjectAtIndex:page withObject:contorller];

}

if (contorller.view.superview==nil) {

CGRect frame=scrollView.frame;

frame.origin.x=CGRectGetWidth(frame)*page;

frame.origin.y=0;

contorller.view.frame=frame;

contorller.image.image = [UIImage imageNamed:[coverList objectAtIndex:page]]; [self addChildViewController:contorller];

[scrollView addSubview:contorller.view];

}

}

来自UIScrollViewDelegate的方法,当用户滚动了UIScrollView后激发该方法

-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView

{

CGFloat pageWith=CGRectGetWidth(scrollView.frame);

NSUInteger page=floor((scrollView.contentOffset.x-pageWith/2)/pageWith)+1;

pageControl.currentPage=page;

[self loadScrollViewWithPage:page-1];

[self loadScrollViewWithPage:page];

[self loadScrollViewWithPage:page+1];

}

事件监听,当用户更改UIPageControl的选中页激发方法

-(void)changePage:(id)sender

{

NSInteger page=[sender currentPage];
CGRect bounds=scrollView.bounds;
bounds.origin.x=CGRectGetWidth(bounds)*page;
bounds.origin.y=0;
[scrollView scrollRectToVisible:bounds animated:YES];
[self loadScrollViewWithPage:page - 1];
[self loadScrollViewWithPage:page];
[self loadScrollViewWithPage:page + 1];

}

在WXPageController中声明UIImageView变量和声明并实现

-(id)initWithPageNumber:(NSInteger)pageNumber

{

self=[super initWithNibName:nil bundle:nil];

if (self) {

self.image=[[UIImageView alloc]initWithFrame:CGRectMake(0, 90, CGRectGetWidth(self.view.frame), 320)];

self.image.contentMode=UIViewContentModeScaleAspectFit;

[self.view addSubview:self.image];

}

return self;

}方法

最后分享一下,我的模板代码:http://download.csdn.net/detail/it_ds/8578789

时间: 2024-10-10 02:49:08

UIPageControl+UIScrollView的相关文章

使用UIPageControl UIScrollView制作APP引导界面

1. 新建两个视图控制器类(继承自UIViewController), 在AppDelegate.m中指定根视图控制器 #import "AppDelegate.h" #import "RootViewController.h" #import "LeadViewController.h" @interface AppDelegate () @end @implementation AppDelegate - (void)dealloc { se

UIScrollView 和UIPageControl 实现app启动滑动图

一.使用NSUserDefaults 判断滑动图有没有出现过,加载滑动图 NSUserDefaults 简介: NSUserDefaults可以将数据永久的保存在手机中,他是一个单例,用起来很方便,所以很适合用于保存简单的数据和为数据做标记 你可以选择在AppDelegate.m中的didFinishLaunchingWithOptions 方法或者"初始界面"(加载的第一个viewController)的 viewDidLoad 方法中进行判断滑动图是否出现过,写上代码: NSUse

UIScrollVIew和UIPageControl学习使用

概要 对于同一个页面需要展示很多图片信息.子视图等的这样的需求,我们可以采用控件UIScrollVIew,与之常常一起使用的控件是UIPageControl,UIScrollVIew里面可以存放多个子视图,通过设置页模式,以及子页面在UIScrollVIew的content位置,可以在滑动控件UIScrollVIew的时候切换子视图.为了交互友好,常常和控件UIPageControl一起使用,该控件是一组指示器,一般指示器个数对应于上述的子页面个数,通过改组指示器可以看到当前子页面的位置以及整个

iOS开发 首次启动显示用户引导,第二次启动直接进入App,UIScrollView,UIPageControl,NSUserDefaults

首先创建一个引导图的控制器类 UserGuideViewController.h和UserGuideViewController.m #import <UIKit/UIKit.h> #import "firstViewController.h" #define WIDTH self.view.frame.size.width #define HEIGHT self.view.frame.size.height @interface UserGuideViewControll

通过UIScrollView和UIPageControl结合制作相册

1.创建UIScrollView视图: UIScrollView *aScrollView = [[[UIScrollView alloc] initWithFrame:self.view.bounds] autorelease]; aScrollView.backgroundColor = [UIColor redColor]; [self.view addSubview:aScrollView]; aScrollView.contentSize = CGSizeMake(CGRectGetW

UIPageControl 与 UIScrollView

#import "MainViewController.h" #define WIDTH self.view.frame.size.width #define HEIGHT self.view.frame.size.height @interface MainViewController ()<UIScrollViewDelegate> @property(nonatomic, retain)UIScrollView *scrollView; @end @implement

UIScrollView 按页面滚动视图 UIPageControl

1.UIScrollView是可以滚动的view,UIView本?身不能滚动,子类UIScrollview拓展了滚动?方?面的功能. 2.UIScrollView是所有滚动视图的基类.以后的UITableView,UITextView等视图都是继承于该类. 3.UIScrollview主要专?长于两个?方?面: (1).滚动:contentSize?大于frame.size的时候,能够滚动. (2).缩放:?自带缩放,可以指定缩放倍数. UIScrollView滚动的相关属性 1.content

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

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

UIScrollView和UIPageControl结合实现图片浏览

iOS中具有图片类的app通常都会有滑动浏览的功能,许多app第一次启动时,也会用UIScrollView+UIPageControl来展示新功能.今天探索一下如何实现该功能. 首先介绍下UIScrollView, UIScrollView中有个重要的属性是contentSize,用于界定滑动范围的大小.UIScrollView本身frame是我们在屏幕上可视部分,也就是说contentSize的宽要大于UIScrollView.frame.size.width才能实现滑动浏览的功能. 另外,图