(三)懒加载以及一些设计规范
/** 这是一只显示图片的猫 */
@property (weak, nonatomic) IBOutlet UIImageView *tom;
这样的好处是调用时显示注释:
九.UIButton UIImageView区别
@property (nonatomic, strong) NSArray *apps;
- (NSArray *)apps{
if(_apps == nil){
NSString *path = [[NSBundle mainBundle] pathForResource:@"app.plist" ofType:nil];
_apps = [NSArray arrayWithContentsOfFile:path];
NSLog(@"%@",_apps);
}
return _apps;
}
注意文件名和拓展名可以写在一起,然后后面写nil。
2.向View中加入组件,指针销毁后视图仍然存在,例如九宫格的添加:
for (int index = 0; index < self.apps.count; index++){
UIView *appView = [[UIView alloc] init];
appView.backgroundColor = [UIColor redColor];
CGFloat appX = margin + (index % totalCol)*(margin + appW);
CGFloat appY = 30 + (index / totalCol)*(margin + appH);
appView.frame = CGRectMake(appX, appY, appW, appH);
[self.view addSubview:appView];
}
3.设计技巧:所有组件的x,y,w,h均表示为变量,一是方便修改,二是方便后续计算(CGFloat类型)。
4.让按钮高亮和普通显示文字一致,则只需要设置UIControlStateNormal(按钮的text称为setTitle)。
按钮设置字体的方式:按钮内部默认有两个子控件,一个imageView,一个label。
@property(nonatomic,readonly,retain) UILabel *titleLabel NS_AVAILABLE_IOS(3_0);
@property(nonatomic,readonly,retain) UIImageView *imageView NS_AVAILABLE_IOS(3_0);
btn.titleLable.text = @“xxx”;//这样是不安全的,因为系统不知道文字对应的状态,可能会在高亮时消失,不推荐,用setTitle更好。
同理,设置按钮前面的image,使用[downloadBtn setImage: forState:]
5.设置字体:
downloadBtn.titleLabel.font = [UIFont systemFontOfSize:13];
6.避免计算margin
先让imageView填充,然后内容居中,使用contentMode属性设置。
7.关于readonly
一个属性readonly,它的内部成员是否readonly还要看具体成员的设置,不是则可以修改。
8.Xcode安装插件:
打开插件运行,然后command+q完全退出。再使用。
例如注释插件,///触发。