IOS開發學習實例之微信消息頁

在極客學院學習這個實例有幾天了,今天完成了80%。後面還有個toolbar的功能沒有實現。原因是老師的視頻中少了這部分內容。後面自己補起來吧。

由於本人是初學IOS開發,比較小白,很多東西都不懂,跟着碼代碼,囫圇吞棗,目的就是想通過實戰培養做IOS項目的感覺。

今天來就來梳理一下這個項目。
項目簡介:
仿照微信公衆號消息頁面。
微信公衆號消息頁面裏面含有三種不同的消息,文本, 單圖,多圖消息。在頁面的最下方還有一個菜單欄,菜單欄分爲一級,二級,三級菜單。

一、架構
它還是一個典型的MVC架構。
1. 項目文件的組織:
- Views ———————– 存放所有的視圖類和對應xib文件
- Library ———————- 存放第三方庫文件
- Category ——————–存放第三方類別文件和項目自身類文件
- Model ———————–存放所有模型類文件
- AppDelegate.h
- AppDelegate.m
- ViewController.h
- ViewController.m————主控制器文件
- ViewController.xib———–主視圖文件
- Supporting Files


  1. 視圖文件架構
    該項目主體是一個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)];
             }
         }
     }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章