您的位置:首页 > 移动开发 > 微信开发

IOS开发学习实例之微信消息页

2015-06-17 16:06 537 查看
在极客学院学习这个实例有几天了,今天完成了80%。后面还有个toolbar的功能没有实现。原因是老师的视频中少了这部分内容。后面自己补起来吧。

由于本人是初学IOS开发,比较小白,很多东西都不懂,跟着码代码,囫囵吞枣,目的就是想通过实战培养做IOS项目的感觉。

今天来就来梳理一下这个项目。

项目简介:

仿照微信公众号消息页面。

微信公众号消息页面里面含有三种不同的消息,文本, 单图,多图消息。在页面的最下方还有一个菜单栏,菜单栏分为一级,二级,三级菜单。

一、架构

它还是一个典型的MVC架构。

1. 项目文件的组织:

- Views ———————– 存放所有的视图类和对应xib文件

- Library ———————- 存放第三方库文件

- Category ——————–存放第三方类别文件和项目自身类文件

- Model ———————–存放所有模型类文件

- AppDelegate.h

- AppDelegate.m

- ViewController.h

- ViewController.m————主控制器文件

- ViewController.xib———–主视图文件

- Supporting Files

视图文件架构

该项目主体是一个UITableView,里面有三种不同的Cell,分别对应三种不同的消息。

文本消息,单图消息,多图消息。

UITableView

TextMessageCell

SingleImageCell

ListImageCell

这里有一个BaseCell,是所有Cell的父类,里面实施了一些公共方法。

实施步骤(个人理解):

1. 先确定数据结构。建立对应的model类。

2. 在ViewController里在特定的事件中读取数据并绑定到对应的model类中。

3. 绑定数据到每个Cell

4. 设置每个Cell的高度在frameinfo中

5. 设置每个Cell的layout在每个Cell相应的Controller中

代码示例:

1. 如何解析JSON文件。

//读取json文件
NSString *path = [[NSBundle mainBundle] pathForResource:@"message" ofType:@"json"];
NSData *data = [NSData dataWithContentsOfFile:path];
NSError *error = nil;
//解析JSON文件
NSDictionary *messageInfo = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:&error];
if(error){
NSLog(@"error: %@", [error description]);
}else{
double lastShowTime = 0;
_isShowTimeDatas = [[NSMutableArray alloc] init];

NSArray *messageArray = messageInfo[@"data"];
for (NSDictionary *messageInfo in messageArray) {
ServiceMessage *message = [[ServiceMessage alloc] initWithDic:messageInfo];
[self.messageDatas addObject:message];
if(fabs(message.messageTime-lastShowTime) > 5*60){
[_isShowTimeDatas addObject:@(YES)];
lastShowTime = message.messageTime;
}else{
[_isShowTimeDatas addObject:@(NO)];
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: