zoukankan      html  css  js  c++  java
  • iOS xib使用的注意事项

    1.xib的通常的使用步骤

    1.1 新建1个类,用来描述这个xib (假定继承自UIView,且类名是DIYView)

    1.2 新建1个xib,文件名也是DIYView,往里面拖一个UIView,设置UIView的属性-Class为DIYView

    1.3 往xib里拖1个长按的手势识别,鼠标右键刚刚拖进来的UIView,gesture Recognizer和刚才拖进来的长按手势识别做连线

    1.4 DIYView.h 提供一个方法类方法: + (instancetype)diyView;

      DIYView.m 实现diyView:

        + (instancetype)diyView

        {

            return [[[NSBundle mainBundle] loadNibNamed:@"DIYView" owner:nil options:nil] lastObject];

        }

    1.5 在控制器中,新增这个用xib定义的view

      DIYView *diy = [DIYView diyView];

      [self.view addsubView:diy];

    1.6 最后运行程序,程序崩溃

    1.7 分析报错原因:

    [DIYView diyView] 返回的是手势,不是预期的uiview.因为最后添加的是长按手势.

    1.8 总结:

    使用xib时需要注意lastObject或者firstObject返回的到底是什么

    1.9 规避方法

    可以通过打印数组看看数组中元素的排列顺序

    NSArray *array = [[NSBundle mainBundle] loadNibNamed:@"DIYView" owner:nil options:nil]

    NSLog(@"%@",array);

    2.控制器初始化

      DiyViewController *diyVC = [[DiyViewController alloc] init ];

      2.1 控制器默认会自动找对应的xib来创建view:  会先找去掉Controller的名字的xib,如果没找到,会去找同名的xib

        像上面这个控制器初始化时,系统首先会找文件名是 DiyView 的xib作为自己的view,如果没找到才去找文件名是 DiyViewController 的xib作为自己的view

      2.2 如果项目中存在DiyView.xib,那么xib的file's Owner的class要设为DiyViewController,然后设置file's Owner的Outlets的view要和xib的view连线,否则会报错

                       

  • 相关阅读:
    致橡树——舒婷
    MPU6050
    Android自动折行TextView Group
    基于LRU Cache的简单缓存
    如果不能给心以翅膀,她如何飞翔
    ubuntu手机识别
    Webkit JNI
    scrapy入门
    Webkit二:RenderTree 创建
    Webkit一:Dom转码和解析
  • 原文地址:https://www.cnblogs.com/oumygade/p/4243637.html
Copyright © 2011-2022 走看看