2016年01月25日

一、即使是在休息日里,也应该及时做总结,不能任由自己拖沓懒散。周日时也算学了些生活必需的技能,也算对影视作品有了些感想,应当写下来。今日需得补记

二、xib 和 control的关系
2.1 xib是纯粹的xml文件,相当于HTML页面
2.2 control是JS,用于驱动用户交互
2.3 xib和control关联,用cotrol去驱动xib
2.4 xib和view关联,一般是为了做页面配置

2.6 xib里初始化的顺序是
     2.6.1 在initWithFrame里创建子控件

 @property (weak,nonatomic) UIButton *button;  // 一个IBOutlet
 - (instancetype)initWithFrame: (CGRect)frame
 {
   if (self = [super initWithFrame: frame]) {
    UIButton *button = ... // 创建一个button
    [button setTitle: ...] // 设置button的属性
    [self.view addSubview: button]; // 将button加到view中,并不设置尺寸
    self.button = button; //将self.button指向这个button,从而保证在layoutSubviews中可以访问

      UILabel *label = ... // 其他的子控件同理
   }     
}
先创建再赋值

    2.6.2  在layoutSubviews里设置frame
    - (void)layoutSubviews 
      {
          [super layoutSubviews]; // 注意,一定不要忘记调用父类的layoutSubviews方法!
          self.button.frame = ... // 设置button的frame
      }

  在初始化自定义类时,一般用传模型的方法,比如有个book类,要在自定义类customView的label上显示它的name属性,要在 text上显示它的like属性,于是这么做

     customView.h
     @property (nonatomic, strong) Book *book; // 在这里定义个属性

     customView.m
     // 重写模型的set方法,并在这里赋值
     - (void)setBook: (Book *)book 
     {
                _book = book;   // 将模型传给当前页面
                [self.button setTitle: book.like forState...];  // 将模型里的值放到页面上
                self.label = book.name;
       }

       //  调用时
       Book *book = self.books[index]; // 这里指拿到books这个数据中的某个数据用于显示
       view.book = book; // 设置view本身的book值,这时就会调用set方法来赋值

       小结一下:
       1、添加子控件
             1.1 在initWithFrame里,动态生成控件,将控件加到subview上,接着将控件赋给view的属性

        2、将模型赋给根view
              2.1 设置一个模型对应的property,为( strong,nonatomic )类型
              2.2  在view里重写模型的set方法,加上显示到页面的操作
              2.3  调用时,在initWithFrame里,写上
                     self.book = book;
                     就调用了set方法,在里面显示模型值

三、关于center horizontal 和 center vertical 怎么理解
3.1 center horizontal 表示在控件内随便拉一条水平线,取其中点,然后不同控件的中点在同一条线上
3.2 center vertical 表示在控件内随便拉一条竖直线,取其中点,然后不同控件的中点在同一条线上
3.3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值