- 代码创建的控件比较灵活,
拖拽的控件不可改变麻烦。
- Cgfloat是double类型的
- 创建控件步骤
1.实例化
2.设置属性优先frame
3.添加到对应的控件中
- Iphone 6s 尺寸 375 * 667
- CGRectGetMaxY
CGRectGetMinY
CGRectGetMidY
- 懒加载节省内存 只加载一次
- UIImageView中填充方式
UIViewContentMode
- 居中设置alignment
NSTextAlignmentCenter居中
- UIButton
本质包含UILabel和 UIImageView
- 控件透明度用alpha
Label.alpha = 0;
- 释放控件
[label removeFromSuperview];
- 字典转模型
解决字典中名字易错但不报错问题和防止plisht文件修改一次性修改过多的数据
- Control +command +上下切换文件
作用相当
Kvc valueforkeyPath的作用是取更加深层的东西
正常赋值方式
- 字典转模型
- (instancetype)initWithDict:(NSDictionary *)dict{
self = [superinit];
if (self){
self.name = dict[@"name"];
self.icon = dict[@"icon"];
}
return self;
}
+ (instancetype)appWithDict:(NSDictionary*)dict{
return [[selfalloc]initWithDict:dict];
}
+ (NSArray *)appArray{
NSArray *array = [ NSArray arrayWithContentsOfFile:[[NSBundlemainBundle] pathForResource:@"app.plist"ofType:nil] ];
NSMutableArray *marray = [NSMutableArrayarray];
for (NSDictionary *dictinarray) {
CZApp*app = [CZAppappWithDict:dict];
[marrayaddObject:app];
}
array = marray;
return array;
}
- 动画嵌套
[UIViewanimateWithDuration:1animations:^{
label.alpha =0.8;
}completion:^(BOOL finished) {
if (finished == YES) {
[UIViewanimateWithDuration:1animations:^{
label.alpha=0;
}completion:^(BOOL finished) {
if(finished == YES) {
[labelremoveFromSuperview];
}
}];
}
}];
- xib的加载
self = [[[NSBundlemainBundle] loadNibNamed:@"CZAppView"owner:nil options:nil] lastObject];
- Btn 的inset 设置内边距 白色框由此而来
Edge 可以单独设置 文字 和image 来调整 默认为文字image一起
- #pragema mark -- 是不设置一条间隔县
#pragema mark - 设置间隔线
- UIButton alpha 设置为0 之后就不会响应点击 不可见
设置hidden 为YES 就不会被点击 不可见
User interaction enabled 去掉选择 不会响应 但是可见 去掉父类的 子类也不会响应。
CZQuestionDate *question = self.questionsArray[self.index];
NSArray *array = [question.options sortedArrayUsingComparator:^NSComparisonResult(NSString *obj1, NSString *obj2) {
int z = arc4random_uniform(2);
if (z) {
return[obj1 compare:obj2];
} else {
return[obj2 compare:obj1];
}
}];