UIViewController - View Management(视图管理)
来源:互联网 发布:mac 覆盖重装系统 编辑:程序博客网 时间:2024/04/29 01:30
每个view controller管理着一个view hierarchy,view hierarchy 的根视图存储在view controller类的view属性中,根视图主要充当一个剩余view hierarchy的容器,根视图的大小和位置是由持有此根视图的对象决定的,该对象要么是一个父view controller,要么是当前app的window。被window持有的view controller是app的根视图控制器,其view填满了整个window。
view controllers懒得加载他们的views,第一次访问view属性时加载和创建view controller的视图,对于一个view controller,有几种方法来指定其视图:
●在app的storyboard文件中指定view controller和其视图。storyboard是指定视图的首选方法。通过storyboard,你可以指定视图以及这些视图与view controller之间的连接关系。你也可以指定view controllers之间的关系和segues,这样做方便观看和修改app的行为。
从一个storyboard加载一个view controller,选取合适的UIStoryboard对象并调用其 instantiateViewControllerWithIdentifier: 方法,storyboard对象创建了view controller并且将它返回到代码中。
● 使用nib文件为一个view controller指定视图。一个nib文件可以指定单个view controller的视图,但不会让你定义view controller之间的segues和关系,nib文件也仅仅存储有关于view controller自身的最小的信息量。
使用一个nib文件去初始化一个view controller,以编程方式创建自己的view controller 类,并且用 initWithNibName:bundle:方法初始化它。当它的视图被请求时,view controller从nib文件中加载它们。
● 使用 loadView 方法为一个view controller指定视图。在这个方法中,以编程方式创建你自己的view hierarchy,并将这个view hierarchy的根视图传给view controller的 view 属性。
以上所有技术都有个相同的结果,那就是创建合适的视图组,并且通过 view 属性显示它们。
IMPORTANT:一个view controller是其视图以及其创建的子视图的唯一持有者。view controller有责任创建这些视图,并且在合适的时间放弃所有权,比如,当view controller自身被释放的时候。如果用一个storyboard或者一个nib文件存储视图对象,当view controller的需要时,每个view controller对象自动获取这些视图自身的copy。然而,如果手动创建视图,每个view controller必须有它自己的唯一的视图组,你不能在view controller之间分享视图。
一个view controller的根视图总是根据分配的空间来调整自身大小。对于view hierarchy中的其他视图,使用Interface Builder指定Auto Layout约束,这可以管理每个视图在其父视图的边界(bounds)内是怎么放置和设定大小的。你也可以以编码的方式创建约束,并在合适的时候将其添加到视图中。了解更多关于如何创建约束的信息,请参考Auto Layout Guide。
- UIViewController - View Management(视图管理)
- UIViewController view视图的加载
- UIViewController(视图控制器)下的View切换
- DFusion-Specific screen/view ratio management具体比例屏幕/视图管理
- UIViewController——Handling View-Related Notifications(处理与视图相关的通知)
- 关于iOS 中UIViewController的生命周期以及相关视图(View)的探讨
- 在UIViewController的view上添加子视图不显示
- UIViewController视图控制器(移动self.view,随机颜色)
- UIViewController 中的一些管理视图控制器方法的小结
- iOS基础控件-UIViewController,视图控制器
- uikit——UIViewController——view管理
- 使用Starteam视图(View)管理项目版本分支
- 使用Starteam视图(View)管理项目版本分支
- 6.2 视图UIView及视图控制器(UIViewController)
- 柔性管理(Soft Management)
- 需求管理(Demand Management)
- 时间管理(Time Management)
- 时间管理(Time Management)
- c/c++下 long long与__int64不同编译环境的比较
- 到付件健康的房间卡发放
- java.lang.IllegalStateException解决办法
- 加载大图片到Android内存
- 不应该学太多
- UIViewController - View Management(视图管理)
- Android 属性动画(Property Animation) 完全解析 (下)
- 产妇诞下12.6斤重巨婴
- java 静态代码块详解
- 智力题:1-28题
- Mac 常用软件下载
- vector容器基础学习感悟
- js 字符串操作函数
- Java中普通代码块,构造代码块,静态代码块区别及代码示例