2016年01月25日

来源:互联网 发布:没有美工怎么做游戏 编辑:程序博客网 时间:2024/06/05 10:57

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

二、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

0 0
原创粉丝点击