IB

作者: ienos | 来源:发表于2020-04-20 00:40 被阅读0次

IB

在 IB 中换行

option + 回车

IBInspectable - IBDesignable

@property(nonatomic,strong) IBInspectable UIColor* textColor;

'-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "XXXView" nib but the view outlet was not set.’,原因是没有做 nib 文件到 xxxViewControler 的关联

第一种原因:当你这个控制器的 view 是通过 xib 加载的,但是在 xib 里面并没有绑定 file's Owner,
  • 第一步:打开 nib 文件
  • 第二步:点击 File's Owner, 按 command+4 ,设置 ClassxxxViewControler
  • 第三步:Control + Files's Owner , 里面有个默认的 IBOutlet 变量 view, 看一下后面有没有做关联,如果没有就拉到下面的 View 和视图做个关联
  • 第四步:还有可能是 xcode 的问题,xcode 本身自带记忆功能,可能你已经修改,或者删除,但是 xcode 无法识别,继续用默认的,所以出上面方法以外,可以重新建立 xib 并且给予不同 view 名字
第二种原因 :当你的控制器的文件名称跟你用 xib 描述的一个 view 的名称很像

当有一个控制器 SignViewController ,它在走初始化方法的时候会去找对应的 xib,如果没有它会找 SignViewxib,此时你的 控制器 会加载你自定义视图的 xib ,导致报错。

xib this class is not key value coding-compliant for

使用 xib 不能重写 loadview

通过 xib 加载的控件, 除了取消 autoLayout, 否则无法更改其 frame

利用一个 xib 创建多个自定义视图,获取视图

for (UIView *view in [[UINib nibWithNibName:@"CommonView" bundle:nil] instantiateWithOwner:self options:nil]) {
        if ([view.restorationIdentifier isEqualToString:@"RemarksView"]) {
            return view;
        }
    }

在 xib 文件中加载另一个 xib 文件

假设 父视图 MainView,子视图 ChildView

  1. ChildViewXib 设置 File's OwnerCustom ClassChild View
  2. File's OwnerOutletsView 上,并且拉 ViewChildView.m IBOutlet
  3. 最后在 Child View 的初始化方法上添加一个 setUp 方法
- (void)setUp {
  [[NSBundle mainBundle]loadNibNamed:@"MainView" owner:self options:nil];
  self.view.frame = self.bounds;
  [self addSubview:self.view];
}
  1. MainView Xib 上添加一个 UIView 并设置该 Custom ClassChildView

若使用代码添加 ChildView,只需调用它的初始化方法,无需再调 [[NSBundle mainBundle]loadNibNamed:@"MainView" owner:self options:nil];

xib 初始化 ViewController

viewController 使用转场动画中,view 的大小获取到的是 xib 中的大小,需要在转场之前初始化 view 的 frame

使用 XIB 自定义视图

    1. 设置 XIB 中的 viewCustom Class 为该类
    1. 初始化视图,可添加 UIView Extension
+ (instancetype)viewWithXib {
  return [[NSBundle mainBundle]loadNibNamed:NSStringFromClass(self) owner:self options:nil].firstObject;
}

相关文章

网友评论

      本文标题:IB

      本文链接:https://www.haomeiwen.com/subject/ollnbhtx.html