IOS-UI学习笔记(九宫格应用管理)
2016-04-13 17:19
531 查看
封装:为了避免代码的重复使用,提高性能;需求变动的时候,扩展性很强。需要更改的地方不多。
1、Xib的加载(Xib这样使用的时候是一个资源文件,所以不要传路径,直接写的文件名字,九宫格就可以用Xib):
返回值是一个数组类型,可以使用UIView接收;
[NSBundle mainBundle] loadNibNamed:@“appView” over:nil options:nil][0];
[[NSBundle mainBundle] loadNibNamed:@“appView” over:nil options:nil]firstObject[;
Xib:用来描述局部界面,比如说九宫格的每一个单元;
2、重写Set方法时固定写法:
_变量名 = 参数名; 为了防止使用get方法的时候出错;
3、在写代码时,不要使用数字,尽量使用变量名称;
在时用成员变量的时候加上下划线;
在调用自己的时候,直接写self,不要写类名字;
instancetype做返回值类型,不能做参数类型;在使用接受的时候会判断类型的匹配;
4、开发文档划线表示的,代表的是过期了,不介意使用,并不是废弃;
5、一个按钮的内部至少有两个控件:一个lable,一个imageView;
6、字典转模型:
加载plist文件:
NSString *path =[[NSBundle mainBundle]pathForResource:@“**.plist” ofType:nil];
读取文件路径:
[NSArray arrywithcontentofile:path];
创建模型类,创建模型对象;
7、在是用subviews获取子控件的时候,要使用类型强转,它返回的是一个View类型;
8、按钮设置不能点击:button.enbale = NO;
9、改变控件透明度:属性.alpha,范围0(全透明)-1(不透明);
文字属性格式设置:textAlignment(枚举类型的赋值);
设置圆角:(1)设置半径
控件.layer.cornerRadius = 8;
(2)切除多余部分
控件.layer.maskToBounds = YES;
10、动画执行的方法:序列帧动画、头尾式动画、Block动画;
后面两个方法本质上是一样地,block能实现的,头尾式动画使用 代理 也可以实现。代理的性能会好一点;
[ UIView animateWithDuration:2.0 animations:^{
<#code#>
} completion:^(BOOL finished) {
if(finished){
<#code#>
}
}
animations:是执行动画的代码块;
completion:是执行完动画后需要执行的代码;
11、从父控件移除[控件 removeFromSuperview];
当控件是weak修饰的时候可以不用赋值nil;
1、Xib的加载(Xib这样使用的时候是一个资源文件,所以不要传路径,直接写的文件名字,九宫格就可以用Xib):
返回值是一个数组类型,可以使用UIView接收;
[NSBundle mainBundle] loadNibNamed:@“appView” over:nil options:nil][0];
[[NSBundle mainBundle] loadNibNamed:@“appView” over:nil options:nil]firstObject[;
Xib:用来描述局部界面,比如说九宫格的每一个单元;
2、重写Set方法时固定写法:
_变量名 = 参数名; 为了防止使用get方法的时候出错;
3、在写代码时,不要使用数字,尽量使用变量名称;
在时用成员变量的时候加上下划线;
在调用自己的时候,直接写self,不要写类名字;
instancetype做返回值类型,不能做参数类型;在使用接受的时候会判断类型的匹配;
4、开发文档划线表示的,代表的是过期了,不介意使用,并不是废弃;
5、一个按钮的内部至少有两个控件:一个lable,一个imageView;
6、字典转模型:
加载plist文件:
NSString *path =[[NSBundle mainBundle]pathForResource:@“**.plist” ofType:nil];
读取文件路径:
[NSArray arrywithcontentofile:path];
创建模型类,创建模型对象;
7、在是用subviews获取子控件的时候,要使用类型强转,它返回的是一个View类型;
8、按钮设置不能点击:button.enbale = NO;
9、改变控件透明度:属性.alpha,范围0(全透明)-1(不透明);
文字属性格式设置:textAlignment(枚举类型的赋值);
设置圆角:(1)设置半径
控件.layer.cornerRadius = 8;
(2)切除多余部分
控件.layer.maskToBounds = YES;
10、动画执行的方法:序列帧动画、头尾式动画、Block动画;
后面两个方法本质上是一样地,block能实现的,头尾式动画使用 代理 也可以实现。代理的性能会好一点;
[ UIView animateWithDuration:2.0 animations:^{
<#code#>
} completion:^(BOOL finished) {
if(finished){
<#code#>
}
}
animations:是执行动画的代码块;
completion:是执行完动画后需要执行的代码;
11、从父控件移除[控件 removeFromSuperview];
当控件是weak修饰的时候可以不用赋值nil;
相关文章推荐
- 从客户端中检测到有潜在危险的 Request.Form 值
- easyui webapi
- 使用手势对UIImageView进行缩放、旋转和移动
- 使用手势对UIImageView进行缩放、旋转和移动
- Java集合(三):Queue队列
- MySQL关于Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp
- POJ 3061 Subsequence
- Reveal逆向工程:分析任意iOS应用的UI界面
- Xcode使用介绍之五:初识UI控件
- easyUI动态columns
- String , StringBuffer, StringBuilder的区别
- Xcode使用介绍之二:创建UI界面+连线
- 错误:-[UIKBBlurredKeyView candidateList]: unrecognized selector sent to instance
- Reason: no suitable image found
- APUE------信号
- Code Sign error: No matching provisioning profile found: Your build settings specify a provisioning
- Android 设置系统SystemUI 顶部StatusBar状态栏透明一体化
- CodeForces 163A Substring and Subsequence(DP)
- Uestc ABCDE 1037
- StringBuilder和stringBuffer的区别