iOS

XIB相关方法

2017-11-24  本文已影响2人  清都

创建的XIB类型为VC时,加载的注意点

代码布局有其便利之处,但是有时候部分布局需要重复使用,且结构比较复杂时,也可以使用XIb进行部分布局,此时封装一个viewcontroller类型的XIB可以节省后续很多维护的麻烦。但是使用XIB也会有一些地方需要注意,一不小心便要多花很多的时间来查找问题。此处列出部分遇到的问题,用于总结及日后查阅。


[self addChildViewController:test]; //添加为当前控制器子控制器

控件设置圆角或圆形

在XIB的User Defined Runtime Attributes属性中添加以下两个Key Path


//当cornerRadius的值为正方形控件二分之一时,
layer.cornerRadius-number-数值
layer.masksToBounds-bool-YES

为UIView的类创建XIB

我们可以为控制器创建配套的XIB,可是UIView上却不行,但是我们也可以通过一些特定的手段实现这一功能

选择XIB的View上的Custom ClassClass选项,将其改成和类名一样,在对应的类中实现以下方法:


+(CustomView *)AcquireCustomView
{
    //我们这里需要把这个xib加载出来而这个xib的所拥有者就是当前的对象`instantiateWithOwner:`这个方法就是对此xib文件进行拥有者关联,关联这个xib是属于哪一个类的我们当然这是self
    CustomView *View = [[UINib nibWithNibName:@"CustomView" bundle:nil]instantiateWithOwner:self options:nil].lastObject;
    
    return View;
}

在需要调用该类的地方实现以下方法:



    CustomView * theCustomView = [[CustomView AcquireCustomView]init];
    [self.view addSubview:theCustomView];
    //约束
    theCustomView.frame = CGRectMake(50, 100, 200, 200);
    

参考链接: iOS 给UIView添加单独XIB文件

上一篇 下一篇

猜你喜欢

热点阅读