iOS之九宫格设计和数据模型转换

1. 九宫格计算思路(主要就是控件位置(x/y)的改变)

1.1利用控件的索引index(该父控件中子控件的个数)计算出控件所在的行号和列号

1.2利用列号计算控件的x值 = 行号 *(子控件的宽度 + 间距)

1.3利用行号计算控件的y值 = 列号 *(子控件的高度 + 间距)

 

/* 清除超过该View范围的控件(控件还在,界面上看不见)

self.View.clipsToBounds = YES;

*/

 

2.HUD

2.1其他说法:指示器、遮盖、蒙板

2.2半透明HUD的做法 :背景色设置为半透明颜色,刚开始隐藏,需要的时候显示出来

 

3.定时任务

方法1:performSelector

 // 1.5s后自动调用self的hideHUD方法

[self performSelector:@selector(hideHUD) withObject:nil afterDelay:1.5];

方法2:GCD(多线程) 

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{

    // 1.5s后自动执行这个block里面的代码

    self.hud.alpha = 0.0;

});

方法3:NSTimer (定时器)

 // 1.5s后自动调用self的hideHUD方法

[NSTimer scheduledTimerWithTimeInterval:1.5 target:self selector:@selector(hideHUD) userInfo:nil repeats:NO];

// repeats如果为YES,意味着每隔1.5s都会调用一次self的hidHUD方法

 

4.常见问题

4.1 项目里面的某个.m文件无法使用:检查:Build Phases -> Compile Sources (查看编译文件)

4.2 项目里面的某个资源文件(比如plist、音频等)无法使用:检查:Build Phases -> Copy Bundle Resources (查看资源文件)

 

5.模型

5.1 什么是模型?

  专门用来存放数据的对象,一般都是一些直接继承自NSObject的纯对象,内部会提供一些属性来存放数据

5.2使用模型的好处:

1)使用数据的时候不会出错 

2)程序代码结构可读性性更强

5.3如何构建模型

1>建立一个模型类,继承NSObject,在类中根据字典的key建立对应的属性,方便后面接收对应数据

2>建立对象方法和类方法来接收外界传来需要解析的数据;根据数据的结构类型,接收对应参数;在方法内部根据字典的key进行解析

3>解析完,将模型数据带到控制器内进行操作,将数据展示在视图上

 

6. 一个控件看不见有哪些可能?

- 宽度或者高度其实为0

- 位置不对(比如是个负数或者超大的数,已经超出屏幕)

- hidden == YES

- alpha <= 0.01

- 没有设置背景色、没有设置内容

- 可能是文字颜色和背景色一样

 

你可能感兴趣的:(iOS之九宫格设计和数据模型转换)