UIView视图在IB中创建的理解
来源:互联网 发布:js的执行原理 编辑:程序博客网 时间:2024/06/05 03:40
Interface Builder在创建视图中的作用
Cocoa采用MVC模式,所以在创建一个UIView时,往往由构建一个UIViewController视图控制器类开始,在XCode中创建时勾选With Xib for user interface可以同时创建一个xib文件来描述和可视化控制页面控件。(不足:Xib对象违反面向对象的原则,我们无法直接继承一个xib对象)。
注:如果用代码布局页面控件,则先要初始化,然后使用addSubView:添加子视图方法将其加入到父视图之中。(当然,通过类的继承实现子类化编码来布局控件虽然相对繁琐,但却可方便地重用代码)。示例代码:
1 UILabel* titleLabel =[[UILabel alloc] initWithFrame :CGRectMake(x, y, width, height)];
2 [self.view addSubView : titleLabel];
另外IB还将拖放到界面里的控件和UIViewController视图控制器绑定关联起来。有两种连接,一、将UIViewController类中的成员变量和界面上的控件绑定,即IBOutlet。IBOutlet将界面与对象相连,实际上充当实例变量的替代者。默认情况下,IBOutlet的类型为id。二、绑定控件的事件到UIViewController中,即IBAction。IBAction是IB创建的界面可以调用的方法。它们指定目标/动作对,将来自控制视图的回调发送给对象。
1. 在iOS中UIWindow的父类是UIView。app程序是一个窗口,多个视图。
2. UIView的作用:绘图和动画,视图负责对其所属的矩形区域绘图、布局和子视图管理、事件处理、可以接收触摸事件、事件信息的载体等等。
3. UIViewController负责创建其管理的视图及在低内存的时候将它们从内存中移除。还为标准的系统行为进行响应。
4. layoutSubViews可以在自己定制的视图中重载这个方法,用来调整子视图的尺寸和位置。
5. UIView的setNeedsDisplay和setNeedsLayout方法都是异步执行的。而且setNeedsDisplay会自动调用(前提:UIView初始化时要设置好rect的大小)drawRect:方法,获取到UIGraphicsGetCurrentContext从而可进行绘图操作;而setNeedsLayout会默认调用layoutSubViews方法,就可以处理子视图中的一些数据。
因此:setNeedsDisplay方便绘图,而layoutSubViews方便处理数据显示。
关于在包含xib对象的继承中要注意的问题:
1. IB中设计的xib对象只是持久化对象,而永远不可能是真正的类。
2. 若是对xib对象做自定义的初始化动作,要重载initWithNibName:bundle:方法,并确保调用[super initWithNibName:bundle:]方法。
3. 重写的父类方法代码中引用到的xib对象,必须用“self.属性名”的形式引用,不要直接以“属性名”的形式引用。否则属性指向的是父类的xib对象,而不是子类的xib对象。
4. 父类方法中引用到的成员变量,直接用“属性名”而不是“self.属性名”的形式引用。
5. 父类中,对于属性别名,必须使用“self.属性名”的形式引用,不能以“属性别名”的形式引用。
6. 子类使用不同的xib文件,则所有的IBOutlet必须重新声明并连接;而对于重新声明的IBAction可以不用实现动作,默认使用父类已实现的Action。
- UIView视图在IB中创建的理解
- UIView视图在IB中创建的理解
- UI05-UIView视图的创建
- 如何在UIView中使用视图控制器
- XCode增加的IBOutlet在IB中找不到
- UIView停靠模式(子视图在父视图的…
- 得到UIView中某个非子视图在UIView中的位置
- 得到UIView中某个非子视图在UIView中的位置
- 在SQLSERVER中创建视图的一些注意事项
- 我自己的代码---在存储过程中创建视图
- 在Oracle中创建带参数的视图
- 在OC代码中创建Swift编写的视图控制器
- 在ib中为button 增加的action相应UIControlEventTouchUpInside 事件
- 修改IB中view的frame
- 在UIView中创建 delegate的属性的时候一定要用assign,不能用retain
- UIView中插入子视图
- 在一个uiViewController中加载一个通过xib创建的uiView,结果界面不正确
- iOS用代码在视图中动态添加多个有序排列UIView的方法(例如九宫格)
- Web.config 无法识别的配置节 connectionStrings
- openfire开发文档
- gSOAP简单多线程服务器程序
- 选用Ibatis和Hibernate的区别
- vs2005中ajax应用及配置webconfig
- UIView视图在IB中创建的理解
- IOS 在导航条的下方加上阴影
- 每年年底31号晚修改PROJECT序列号
- 免费正则表达式辅助工具
- linux下Tcpdump命令详解
- 30个开发人员有用的CSS代码片段
- Android底层开发之旅—蓝牙系统分析
- delegate和protocol(区别)
- 按键精灵自动登录网站范例源码