iOS开发 - View Controller 的paging

在学习开源中国ios 源码时,发现其实现view controllers 的paging的方法如下:

第一、定义一个容器类的view controller,类似于UIPageViewController. 该vc的主要由两部分组成:

a 一个title view,用来表明当前内容是什么,并且能够相应用户的点击,切换content

b 一个table view controller (通过addChildViewController添加,并将table view controller 的view 添加到容器的view中),用来显示内容, 即响应用户的手势实现paging.

第二是设置tableview的transform,将tableview旋转90度,设置pagingEnable为yes(UIScrollView的属性),并在table view delegate方法将cell的height设置为屏幕的宽度,这样就能够将table view变成一个能够paging的view了。

那么如何将view controllers的内容 添加到table view中去呢?首先将所有view controller添加到table view controller中去,然后将view controller的view 添加到table view cell 的content view中,这样table view cell中的内容就是view controllers 的内容了。

这种实现主要涉及三个角色:

1. 容器类的view controller, 主要用来协调title view 和table view controller

2. table view controller, 用来实现内容水平方向的paging

3. view controllers,用来提供内容

因为UIKit本身就提供了paging view controller,不知道为什么不直接用?

经过测试,可以使用paging view controller实现以上基本功能

代码:https://github.com/beddup/BeddupPageViewControllerDemo

时间: 2024-08-24 14:41:20

iOS开发 - View Controller 的paging的相关文章

iOS开发-View中frame和bounds区别

开发中调整View的时候的经常会遇到frame和bounds,刚开始看的时候不是很清楚,不过看了一下官方文档,frame是确定视图在父视图中的位置,和本身的大小,bounds确定可以确定子视图在当前视图中的位置,还可以改变View的大小,如果bounds确定大小,那么View的视图优先选择的bounds中的宽高.Center的位置是相对于父坐标系中的定位.苹果官方给了一张图片供参考: 如果还不是很清晰,可以参考一下frame和bounds的中代码: -(CGRect)frame{ return

mask层--- ios开发view圆角属性的layer层的实质

今天突然领悟了之前学习的一些基础的UI属性 就是在我们设置view的圆角的时候 比方说下面的代码 UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(10, 10, 60, 60)]; button.layer.masksToBounds = YES; button.layer.cornerRadius = 30; 这里给button设置圆角属性 以前一直这么写 知道layer是view的绘制的一层 一直这么用 今天突然领悟

ios开发 view视图

Initializing a View Object //初始化view - (id)initWithFrame:(CGRect)aRect //通过一个矩形对象初始化 Configuring a View’s Visual Appearance //配置视觉展示 @property(nonatomic, copy) UIColor *backgroundColor //设置背景色@property(nonatomic, getter=isHidden) BOOL hidden //隐藏view

M2在奋斗之ios开发--View Controller pragramming guide for IOS中文版

About View Controllers 视图控制器是应用程序数据和其视觉外形之间的一个至关重要的链接.无论何时,应用程序显示一个用户界面,其显示的内容都是由一个或一组互相合作的视图控制器管理.因此,视图控制器给你建立的应用程序提供了骨架. iOS提供了很多内置的视图控制器类来支持标准用户界面块(piece),比如导航和标签栏.作为开发应用程序的一部分,你还可以实现一个或多个自定义控制器来显示应用程序的特定内容. 概述 在模型-视图-控制器(MVC)设计模式里,视图控制器是传统的控制器对象,

【IOS笔记】View Controller Basics

View Controller Basics   视图控制器基础 Apps running on iOS–based devices have a limited amount of screen space for displaying content and therefore must be creative in how they present information to the user. Apps that have lots of information to display

iOS开发UI篇—控制器的View的创建

iOS开发UI篇—控制器的View的创建 一.6种创建控制器View的方式 1 #import "NJAppDelegate.h" 2 #import "NJViewController.h" 3 /* 4 1.没有同名xib情况下 5 2.通过 storyboard 创建 6 3.有指定xib情况下创建 7 4.有同名xib情况 8 5.有同名去掉controll的情况 9 6.loadveiw 10 */ 11 @implementation NJAppDele

iOS开发基础之用三种不同方式创建Table View应用

在iOS中,有一种最常见的控件就是Table View,你也可以理解为是一个列表.在安卓中就是一个ListView.常常用在新闻客户端,邮箱,备忘录等应用上.但是在iOS实现这个列表项比Android更为简单.下面将会使用三种方法来实现一个Table View的界面. (1)模板Master-Detail Application 这是在创建一个iOS应用的时候可以选择的模板,里面已经非常好的集成了Table View控件,已经可以实现增加一项,删除一项,信息显示的功能了.我们可以在这个基础上进行

iOS架构师之路:控制器(View Controller)瘦身设计

前言 古老的MVC架构是容易被iOS开发者理解和接受的设计模式,但是由于iOS开发的项目功能越来越负责庞大,项目代码也随之不断壮大,MVC的模糊定义导致我们的业务开发工程师很容易把大量的代码写到视图控制器中,行业中对这种控制器有个专业词汇Massive ViewControler(臃肿的视图控制器).代码臃肿导致可读性可维护性差,而且这种不清晰的设计还有许多的副作用,比如代码重用性差.作为架构师需要关注项目的代码质量.指导业务开发工程师写出高质量,高健壮性,高可用的代码也是很重要的工作.因此需要

详解iOS开发之自定义View

iOS开发之自定义View是本文要将介绍的内容,iOS SDK中的View是UIView,我们可以很方便的自定义一个View.创建一个 Window-based Application程序,在其中添加一个Hypnosister的类,这个类选择继承UIObject.修改这个类,使他继承:UIView @interface HypnosisView : UIView 自定义View的关键是定义drawRect: 方法,因为主要是通过重载这个方法,来改变view的外观.例如,可以使用下面代码绘制一个很