zoukankan      html  css  js  c++  java
  • 关于Xib 需要注意的地方

    当你需要写一个繁琐的界面但是又是静态页面时,很可能会用到xib

    【特例:创建继承于UIView的文件时,不带自动生成xib的勾选项,需要开发人员手动new一个同名的xib文件,在该xib文件右侧的class中选择相应的文件名】如图:

    需要注意的几点:

    (1)一个xib里的所有控件只能放到自己的@interface声明里,不能放到其他的文件中去

    (2)学会合理利用init方法,加载xib时,需要loadNibName一下,放在init方法里会更好一些,方便我们后续在init方法中添加一些别的控件设置,,在controller中调用的时候只需要填写init方法即可,不需要担心它是xib或者是纯代码了,用法如下:

    -(instancetype)init{

        self = [super init];

        if (self) {

    //重点在这里:

            self = [[[NSBundle mainBundle]loadNibNamed:@"JYEMainActivityPageView" owner:nil options:nil] firstObject];

           //一些其他的设置都可写在这里、、需要注意的是,@""内的内容就是xib文件的名字

        }

        return self;

    }

    在cell中是这样的:

    - (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier{

        self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];

        if (self) {

                self = [[[NSBundle mainBundle]loadNibNamed:@"JYEMineCell" owner:self options:nil] lastObject];

         //一些其他设置【如果cell的内容来自Model的话,也可以定义一个model属性,在他的set方法中进行一些其他的设置】

        }

        return self;

    }

    (3)或者这样:注册一下,让你的tableview知道它要到复用池里找的哪些cell

        [self.tableView registerNib:[UINib nibWithNibName:NSStringFromClass([JYERecordCell class]) bundle:nil] forCellReuseIdentifier:NSStringFromClass([JYERecordCell class])];

        JYERecordCell * recordCell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([JYERecordCell class])];

  • 相关阅读:
    C语言I博客作业01
    C语言I博客作业09
    C语言I博客作业08
    C语言I博客作业07
    C语言I博客作业06
    C语言I博客作业05
    C语言II博客作业04
    C语言II博客作业03
    C语言II—作业02
    C语言II博客作业01
  • 原文地址:https://www.cnblogs.com/lrr0618/p/5346106.html
Copyright © 2011-2022 走看看