ios之UIPageController和UIScrollView配合使用

UIPageController

  UIPageController控件主要用来实现视图分页,通常会和UIScrollView配合使用

创建

UIPageControl *page=[[UIPageControl alloc] init];

设置frame

  pagel.frame = CGRectMake(0,self.view.frame.size.height -40,self.view.frame.size.width,20);

常用属性

分页面的数量

  page.numberOfPages = self.imageNames.count;

设置翻页标渲染颜色

  page.pageIndicatorTintColor = [UIColor  blackColor];

设置当前页的渲染颜色

  pagel.currentPageIndicatorTintColor =[UIColor  redColor];

关闭用户交互

  page.userInteractionEnabled = NO;

添加到父视图

  [self.view  addSubview:page];

UIPageController和UIScrollView配合使用

   首先需要遵守<UIScrollViewDelegate>协议,然后在viewDidLoad:方法里面给delegate赋值,

  最后实现协议中的scrollViewDidScroll:方法,该方法在每次完成滚动的时候都会被调用,即在该方法里面计算出当前显示第几页并赋值给self.pageControl.currentPage

- (void)viewDidLoad

{

[super viewDidLoad];

UIScrollView *scrollView=[[UIScrollView alloc] init];

CGRect frame=self.view.frame;

scrollView.frame=frame;

UIImage *image1=[UIImage imageNamed:@"1.jpg"];

UIImage *image2=[UIImage imageNamed:@"2.jpg"];

UIImage *image3=[UIImage imageNamed:@"3.jpg"];

[email protected][image1,image2,image3];

CGSize   size=CGSizeMake(self.array.count*self.view.frame.size.width, self.view.frame.size.height);

//显示内容大小

scrollView.contentSize=size;

for(int i=0;i<self.array.count;i++)

{

UIImageView *imageView=[[UIImageView alloc] initWithImage:self.array[i]];

    //图片显示形式

imageView.contentMode=UIViewContentModeScaleAspectFit;

   //图片显示范围

imageView.frame=CGRectMake(i*self.view.frame.size.width, 0, self.view.frame.size.width, self.view.frame.size.height);

//加到scrollView中

[scrollView addSubview:imageView];

}

    //整页翻动

  scrollView.pagingEnabled=YES;

    UIPageControl *page=[[UIPageControl alloc] init];

    self.page=page;

   //位置

  page.frame = CGRectMake(0,self.view.frame.size.height - 40, self.view.frame.size.width,20);

  //页面个数

    page.numberOfPages=self.array.count;

//设置颜色

   page.currentPageIndicatorTintColor=[UIColor redColor];

   page.pageIndicatorTintColor=[UIColor blackColor];

  //将自己设置成.delegate

    scrollView.delegate=self;

  //加到view里

 [self.view addSubview:scrollView];

[self.view addSubview:page];

}

   //实现方法

//最后实现page的指示标配合scrollView的滚动显示功能,此功能需要通过scrollView的delegate来实现。

-(void)scrollViewDidScroll:(UIScrollView *)scrollView

{

//得到图片移动相对原点的坐标

  CGPoint point=scrollView.contentOffset

//移动不能超过左边;

if(point.x<0)

{

point.x=0;

scrollView.contentOffset=point;

}

  //移动不能超过右边

if(point.x>(self.array.count-1)*self.view.frame.size.width)

{

point.x=self.view.frame.size.width*(self.array.count-1);

scrollView.contentOffset=point;

}

  //根据图片坐标判断页数

  NSInteger index=round(point.x/self.view.frame.size.width);

  self.page.currentPage=index;

}

声明:参考资料达内笔记

时间: 2024-10-11 13:29:43

ios之UIPageController和UIScrollView配合使用的相关文章

学习IOS开发UI篇--UIScrollView/delegate/pagecontrol/UITimer

1.UIscrollView的属性 ================================================== 1.1 常见属性 @property(nonatomic) CGPoint contentOffset; 这个属性用来表示UIScrollView滚动的位置 @property(nonatomic) CGSize contentSize; 这个属性用来表示UIScrollView内容的尺寸,滚动范围(能滚多远) @property(nonatomic) UIE

【转】 iOS开发UI篇—UIScrollView控件实现图片轮播

原文:http://www.cnblogs.com/wendingding/p/3763527.html iOS开发UI篇—UIScrollView控件实现图片轮播 一.实现效果 实现图片的自动轮播            二.实现代码 storyboard中布局 代码: 1 #import "YYViewController.h" 2 3 @interface YYViewController () <UIScrollViewDelegate> 4 @property (w

iOS UIPageControl与UIScrollView配合使用代码

#import "RootViewController.h" #import "RootView.h" @interface RootViewController ()<UIScrollViewDelegate> @property(nonatomic,retain)RootView *myview; @end @implementation RootViewController - (id)initWithNibName:(NSString *)nib

iOS中Xcode使用UIScrollView+AutoLayout轻松实现滚动布局

对于一些屏幕尺寸比较小的手机,或者内容很长,一屏幕显示不了的情况,我们通常可以用手指往上滑的方法浏览底部内容,如果不是用ListView或者UITableView去实现的话,我们就需要自己实现滚动布局. Android实现 在Android平台上,用XML文件很容易实现滚动布局,需要注意的是,ScrollView的下面只允许一个根视图,譬如如下代码: <ScrollView android:layout_width="match_parent" android:layout_he

iOS开发UI篇—UIScrollView控件实现图片缩放功能

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

iOS开发UI篇—UIScrollView控件介绍

一.知识点简单介绍 1.UIScrollView控件是什么? (1)移动设备的屏幕?大?小是极其有限的,因此直接展?示在?用户眼前的内容也相当有限 (2)当展?示的内容较多,超出?一个屏幕时,?用户可通过滚动?手势来查看屏幕以外的内容 (3)普通的UIView不具备滚动功能,不能显?示过多的内容 (4)UIScrollView是一个能够滚动的视图控件,可以?用来展?示?大量的内容,并且可以通过滚 动查看所有的内容 (5)  举例:手机上的“设置”.其他?示例程序 2.UIScrollView的简

iOS开发UI篇—UIScrollView控件实现图片轮播

一.实现效果 实现图片的自动轮播            二.实现代码 storyboard中布局 代码: 1 #import "YYViewController.h" 2 3 @interface YYViewController () <UIScrollViewDelegate> 4 @property (weak, nonatomic) IBOutlet UIScrollView *scrollview; 5 /** 6 * 页码 7 */ 8 @property (w

iOS开发 --UIScrollView添加xib自定义view

实现功能:3步注册流程,点击下一步进入下一个页面,填写信息. 实现思路: 1.由于需要在第一个注册页面添加“退出注册”的按钮,所以没有使用UINavigation实现.而是使用一个UIController. 2.三个注册页长度不同,所以将UIScrollView作为subView添加到VC的view中(UIScrollView的frame长宽写定). 3.自定义三个UIView,当需要展示某个view时,根据此view的frame改变UIScrollview的contentViewSize 具体

iOS常用控件-UIScrollView

一. 常见属性 @property (nonatomic) CGPoint contentOffset;                      //记录UIScrollView滚动的位置 @property (nonatomic) CGSize contentSize;                          // 内容尺寸 (能滚动的范围) @property (nonatomic) UIEdgeInsets contentInset;                // 额外增