iOS XIB总结(一)
一、XIB文件使用简介
1、添加约束
![](https://img.haomeiwen.com/i1980511/9e9332b51600a1a8.png)
![](https://img.haomeiwen.com/i1980511/13addd484df03d7b.png)
Horizontally in Container(与容器平行) Align Center X to superview, " |"
Vertically in Container(与容易垂直) Align Center Y to superview, "--"
注:添加完约束后,同时按住"optional+command + =",即可更新约束。
2、更改约束
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *circlrOriginY;
注:做动画更改约束,必须添加此方法:[self layoutIfNeeded];
![](https://img.haomeiwen.com/i1980511/cc56908518c5aa4e.png)
二、UIView的xib文件
1、创建继承于UIView的类
如下图所示,在创建UIView的同时不会创建xib文件,xib文件需要单独创建
![](https://img.haomeiwen.com/i1980511/f6a107dec81fe05b.png)
2、创建UIView的xib文件
选择下图所示的View
注:xib文件的名称应与类名的相同
![](https://img.haomeiwen.com/i1980511/97602c2de3c77a98.png)
注:指定所创建的UIView类
![](https://img.haomeiwen.com/i1980511/8e953cff51cc5406.png)
接下类就可以拖控件和添加约束了。
4、设置属性的方法
//设置属性
- (void)awakeFromNib
{
[super awakeFromNib];
self.circleView.layer.cornerRadius = 150;
self.circleView.clipsToBounds = YES;
}
5、引入其他类使用
View1 *view = [[NSBundle mainBundle]loadNibNamed:@"View1" owner:nil options:nil].firstObject;
三、UIViewController的xib文件
与UIView不同的是,UIViewController在创建的同时就可以创建XIB文件,也可以分开创建。
![](https://img.haomeiwen.com/i1980511/43fb6876e37a0933.png)
1、同时创建
如上图所示,勾选also create xib file后创建。
自动创建的xib文件,默认指定了File's owner。
2、分开创建
注:此处选择的是File's Owner
第一步:指定类名
![](https://img.haomeiwen.com/i1980511/01b4db6c27b81c8d.png)
第二步:选中File's Owner的同时,按住Control键,从File's Owner处拖线条到View上
![](https://img.haomeiwen.com/i1980511/b4ce1ee2ac04c8a5.png)
操作成功,如下图所示:
![](https://img.haomeiwen.com/i1980511/7c52ece76047e026.png)
3、引入其他类中使用
xibVc *xib = [[xibVc alloc]initWithNibName:NSStringFromClass([xibVc class]) bundle:nil];
[self presentViewController:xib animated:YES completion:nil];
四、UITableViewCell的xib文件
1、xib文件设置
![](https://img.haomeiwen.com/i1980511/b8ba63633fefef70.png)
2、引入其他类中的使用
[_tableView registerNib:[UINib nibWithNibName:NSStringFromClass([ReceiveImageCell class]) bundle:nil] forCellReuseIdentifier:NSStringFromClass([ReceiveImageCell class])];
ReceiveImageCell *imgCell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([ReceiveImageCell class]) forIndexPath:indexPath];