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

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

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

时间: 2024-11-04 18:29:03

iOS之九宫格设计和数据模型转换的相关文章

猿题库 iOS 客户端架构设计(原文地址:http://gracelancy.com/blog/2016/01/06/ape-ios-arch-design/)

猿题库 iOS 客户端架构设计 序 猿题库是一个拥有数千万用户的创业公司,从2013年题库项目起步到2015年,团队保持了极高的生产效率,使我们的产品完成了五个大版本和数十个小版本的高速迭代.在如此快速的开发过程中,如何保证代码的质量,降低后期维护的成本,以及为项目越来越快的版本迭代速度提供支持,成为了我们关注的重要问题.这篇文章将阐明我们在猿题库 iOS 客户端的架构设计. MVC MVC,Model-View-Controller,我们从这个古老而经典的设计模式入手.采用 MVC 这个架构的

学习IOS开发UI篇--UITableView/数据模型嵌套/UITableViewCell/Cell的重用

1.UITableView ================================================== UITableView有两种格式:group和plain 2.UITableView如何展示数据 ================================================== UITableView需要一个数据源(dataSource)来显示数据 凡是遵守UITableViewDataSource协议的OC对象,都可以是UITableView的

iOS 7 界面设计资源

太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 这是苹果官方资源的界面复制,感觉设计的很漂亮,一直觉得苹果的开发文档,虽然文档内组织的很合理,但各文档间的关联性很差,这也是形成立体知识库于头脑中

IOS如果将一个十六进制的color转换成UIColor,很实用

UI给开发的效果图很多时候标注着十六进制的Color,而程序中用到的往往是UIColor可以用如下方法去转换: (UIColor *)RGBColorFromHexString:(NSString *)color alpha:(float)alpha { //color的值类似#fffeee,alpha的值类似1.0为透明度 int nums[6] = {0}; for (int i = 1; i < [color length]; i++) { int temp = [color charac

Unity3D与iOS的交互设计&lt;ViewController 的跳转&gt;

原地址:http://www.aichengxu.com/article/%CF%B5%CD%B3%D3%C5%BB%AF/28797_12.html Unity3D与iOS的交互设计<ViewController 的跳转>,有需要的朋友可以参考下. 这也是第一次做这样的需求,也是公司的需要呀.做出这个真是一言难尽呀... 小弟主要不是搞iOS开发的,一直以来都是开发Android开发,只是昨天被老大叫过去做一下iOS的二维码扫描.有点iOS基础的我,只好到处搜索了.然后,二维码扫描做好了,遇

iOS分层架构设计

大家都知道,在移动设计开发中有很多种模式,最常用的单例设计模式.MVC设计模式.工厂设计模式.KVO.通知.代理等等.使用设计模式的目的:为了代码可重用性.让代码更容易被他人理解.保证代码可靠性.而架构设计是宏观的.全面的将设计魔术组织起来解决整个应用系统的方案.架构设计是人们对一个结构内的元素及元素间关系的一种主观映射的产物.一个好的架构设计有着良好的可复用性和可扩展性,这样可以满足用户不断变化的需求. 低耦合企业级系统架构设计 我们知道,软件设计的原则是提高软件系统的"可复用性"和

iOS程序框架设计之皮肤切换功能 (白天与夜间效果)

iOS程序框架设计之皮肤切换功能 一.引言 移动应用的开发中,有时我们会需要例如更换皮肤此类的功能,andorid采用xml配置UI的方式,这个问题或许还容易解决些,iOS的主要UI逻辑则是在代码中控制的,如果没有一个强大的框架方案,这个问题将变得非常棘手.网上也有很多诸如此类功能的优秀案例与框架,在这篇博客中,我与大家分享下我的解决方案,其中如果有不恰或者糟糕之处,希望与高人一起交流. 二.设计思路与框架 首先我的设计思路是采用通知的方式,原理可以如下理解为以下几步: 1.在系统的通知中心注册

iOS开发-16进制颜色转换

项目中经常会用到颜色转换,有的是通过十六进制转成数字转颜色,想简单的点直接通过字符串转一下,简单扩展了一下分类UIColor,代码如下: +(UIColor *)colorWithHex:(NSString *)hexColor{ return [self colorWithHex:hexColor alpha:1.0f]; } //http://www.cnblogs.com/xiaofeixiang iOS技术交流:228407086 +(UIColor *)colorWithHex:(NS

iOS界面布局设计

参考资料: 1. 谈谈如何学习ios 8的界面和布局设计 2. iOS 8 Auto Layout界面布局系列 3. 为iPhone 6设计自适应布局 4. 几张图弄明白iOS布局中的尺寸问题