storyboard 和 xib

来源:互联网 发布:一维数组的定义方文字 编辑:程序博客网 时间:2024/05/17 06:53

1.区别(storyboard 是在 IOS 5.0 后才有的)

  • storyboard:描述软件界面,大范围,重量级,比较合适描述整个软件的所有界面
  • xib:描述软件界面,小范围,轻量级,比较适合描述软件中得某个小界面(局部界面),例如几个组件的组合体。

2.相同点:他们本质都是通过解析 xml 文件来一个个创建相应的视图组件,跟 Android 中的layout文件类似。


3. 可以认为 xib 和 nib 是同义词。


4. 加载 xib 文件的方法:

// 加载 RowView.xib 文件,返回的是该xib文件下所有的视图组件,数据类型为NSArray. owner 的值很重要[[NSBundle mainBudle] loadNibNamed:@“RowView” owner:nil options:nil];


5. File’s Owner 的使用步骤

  • 在目标 xib 文件中设置 File’s Owner 的class 属性(目的是在xib中能找到Owner的方法,从而能够对xib中的组件进行相关的事件监听)
  • 建立 File’s Owner 跟控件之间的关系
  • 利用代码加载 xib,传递Owner 参数(类型与xib文件中的属性一定要匹配)。


一些常用到的方法

  • [_childView removeFromSuperView]      // 从父控件中移除 _childView 这个子控件
  • [_childView superView]  //返回 _childView 所在的父控件
  • [_parentView viewWithTag:mytag]  // 根据mytag 找到 _parentView 中对应的子控件 


将一个xib文件独立出来

1. 新建一个xib文件,然后添加一个UIView, 并往UIView中添加一些视图组件。

2. 新建一个OC类,并继承自UIView。

3. 点击 xib 文件,选中那个父视图UIView,然后在右边属性栏中的 “Custom Class” 属性中填写 2 步骤中新建的OC类名。这样OC类就与xib文件建立了联系

4. 在OC类文件中添加一些与xib视图中组件对应的成员变量,并且可以添加按钮点击事件。

5. 在 xib 文件中,选中然后右键修改后 UIView,在弹出的一些成员变量和事件中,可以拉线与xib中的视图组件建立联系。



0 0
原创粉丝点击