美文网首页iOS菜鸟到大神ios开发指南iOS1
博爱微信,使用原生 frame + MVVM + MVC + Q

博爱微信,使用原生 frame + MVVM + MVC + Q

作者: 95c9800fdf47 | 来源:发表于2017-03-01 11:25 被阅读1130次

    BAWeChat

    BAHome Team NameBAHome Team Name

    1、功能及简介

    • 1、博爱微信,使用原生 frame + MVVM + MVC + 『QMUIKit』 + BAKit 开源的微信
    • 2、展示图中的 FPS 是模拟器的数据,真机 iPhone 6上最低50, iPhone 7上最低59,基本上都在 58 以上,代码规范,新手学习可以做个参考
    • 3、注意:如果运行报错,请先 执行: pod setup 更新下本地的pod spec 库,更新时间漫长,需要耐心等待,然后再 执行:pod update --verbose --no-repo-update 更新pod,然后再运行!
    • 4、全局使用 原生 frame 布局,完美适配横竖屏
    • 5、使用 『QMUIKit』 框架快速搭建高性能项目框架,含全局配置文件再次封装,小伙伴儿们可以直接使用,无需采坑
    • 6、朋友圈,采用 MVVM 框架布局,流畅的不能再流畅
      • 数据全部采用 json 数据
      • model 仿照新浪微博 的数据结构定制
      • 图片全部实现网路图片,png、gif动图,九宫格图片完美封装,使用 YYImage
      • 图片浏览器使用 MWPhotoBrowser
      • 原文使用 『MLLabel』 ,实现文字内容解析,URL、电话号码等可以单独处理,详见源码
      • 原文实现微信文字长按复制收藏功能
      • 评论功能动态更新布局
    • 7、通讯录,博爱出品,完美封装通讯录中英文混合排序,可以直接使用,代码简洁,一目了然
    • 8、搜索,使用 『QMUIKit』 框架搜索功能,功能强大
    • 9、系统通讯录获取并重新定制,使用 『PPGetAddressBook』 源码
    • 10、博爱自定义键盘的封装,让你的评论、聊天就是这么简单
    • 11、各种转场动画封装,详见源码
    • 12、各种启动动画封装,详见源码
    • 13、网络库使用 『BANetManager』
    • 14、还有很多功能封装,详见源码 BAKit

    2、图片示例

    通讯录.png通讯录.png
    搜索.png搜索.png
    发现.png发现.png
    朋友圈.gif朋友圈.gif
    评论.png评论.png
    图片浏览器.png图片浏览器.png
    我.png我.png

    3、安装、导入示例和源码地址

    4、BAWeChat 的类结构及 demo 示例

    发现-类结构.png发现-类结构.png

    BATimeLineViewModel.h

    #import <Foundation/Foundation.h>
    
    @class BATimeLineModel;
    @interface BATimeLineViewModel : NSObject
    
    /*! 原始数据 */
    @property (nonatomic, strong) BATimeLineModel *model;
    
    /*! 头像的 frame */
    @property (nonatomic, assign) CGRect iconImageViewFrame;
    
    /*! 昵称的 frame */
    @property (nonatomic, assign) CGRect nameLabelFrame;
    
    /*! 正文的 frame */
    @property (nonatomic, assign) CGRect contentLabelFrame;
    
    /*! 时间的 frame */
    @property (nonatomic, assign) CGRect timeLabelFrame;
    
    /*! 点赞和评论按钮的 frame */
    @property (nonatomic, assign) CGRect operationButtonFrame;
    
    /*! 来源的 frame */
    @property (nonatomic, assign) CGRect sourceLabelFrame;
    
    /*! 原创朋友圈的 frame */
    @property (nonatomic, assign) CGRect originalContentViewFrame;
    
    /*! 图片 View 的 frame */
    @property (nonatomic, assign) CGRect photoViewFrame;
    
    /*! 评论 Label 的 frame */
    @property (nonatomic, assign) CGRect commentLabelFrame;
    
    /*! 评论 View 的 frame */
    @property (nonatomic, assign) CGRect commentViewFrame;
    
    
    /*! cell的高度 */
    @property (nonatomic, assign) CGFloat cellHeight;
    
    /*! cell的内容Frame */
    - (void)setUpContentFrame;
    
    @end
    

    BATimeLineModel.h

    #import <Foundation/Foundation.h>
    
    @class BAUser, BATimeLineCommentModel;
    @interface BATimeLineModel : NSObject
    
    /*!
     *  发表用户
     */
    @property (nonatomic, strong) BAUser *user;
    
    /*!
     *  创建时间
     */
    @property (nonatomic, copy) NSString *created_time;
    
    /*!
     *  发表内容
     */
    @property (nonatomic, copy) NSString *content;
    
    /*!
     *  朋友圈来源
     */
    @property (nonatomic, copy) NSString *source;
    
    /*!
     *  配图数组(BAPhoto)
     */
    @property (nonatomic, strong) NSArray <NSString *>*pic_urls;
    
    /*!
     *  内容 ID
     */
    @property (nonatomic, copy) NSString *contentId;
    
    /*!
     *  内容的评论
     */
    @property (nonatomic, strong) NSArray <BATimeLineCommentModel *>*comments;
    
    
    @end
    
    @interface BATimeLineCommentModel : NSObject
    
    @property (nonatomic, copy) NSString *commentContent;
    
    @property (nonatomic, strong) BAUser *firstUser;
    @property (nonatomic, strong) BAUser *secondUser;
    
    @property (nonatomic, copy) NSAttributedString *attributedContent;
    
    @end
    

    demo 示例

    其他示例可下载demo查看源码!
    

    5、更新记录:【倒叙】

    欢迎使用 【BAHome】 系列开源代码 !
    如有更多需求,请前往:【https://github.com/BAHome】

    最新更新时间:2017-05-22 【倒叙】
    最新Version:【Version:1.1.1】

    更新内容:

    1.1.1.1、修复朋友圈点赞评论按钮展开后,滑动不隐藏问题(感谢 群里@武汉-老痒 的 bug 反馈!)

    最新更新时间:2017-05-17 【倒叙】
    最新Version:【Version:1.1.0】

    更新内容:

    1.1.0.1、完美适配朋友圈的横竖屏

    1.1.0.2、新增『BANetManager』『BAAlert』『BAPickView』『BAButton』等 BAKit 系列 pod 版本使用

    6、bug 反馈 和 联系方式

    1、开发中遇到 bug,希望小伙伴儿们能够及时反馈与我们 BAHome 团队,我们必定会认真对待每一个问题!

    2、联系方式

    QQ群:479663605 【注意:此群为 2 元 付费群,介意的小伙伴儿勿扰!】

    博爱QQ:137361770

    博爱微博:


    7、开发环境 和 支持版本

    开发使用 Xcode Version 8.3.2 (8E2002) ,理论上支持所有 iOS 版本,如有版本适配问题,请及时反馈!多谢合作!

    8、感谢

    感谢 BAHome 团队成员倾力合作,后期会推出一系列 常用 UI 控件的封装,大家有需求得也可以在 issue 提出,如果合理,我们会尽快推出新版本!

    BAHome 的发展离不开小伙伴儿的信任与推广,再次感谢各位小伙伴儿的支持!

    相关文章

      网友评论

      • e4d93d6aae84:滴,萨瓦迪卡
      • 夜满西楼::grin: 装逼我就服孙博岩
      • 男人宫:运行不了????
        男人宫:@博爱1616 好的,没仔细看,多谢了兄弟
        95c9800fdf47:我在最上面添加了注意事项,记得看下步骤!
        95c9800fdf47:@ios小霸王 你先 执行: pod setup 更新下本地的pod spec 库,然后再 执行:pod update --verbose --no-repo-update 更新pod,然后再运行!
      • 5438183da5ea:我就服 孙博岩:smirk:
      • Ths:好屌啊 传说中的孙博岩大屌
      • c45c75ce4a5f:滴,奥斯卡!
        95c9800fdf47:滴,老司机卡...
      • 混不吝丶:我就服 孙博岩:smirk:
        95c9800fdf47:@混不吝丶 别,前面还有好多老司机!咱们坐稳扶好,别闪腰就行了!

      本文标题:博爱微信,使用原生 frame + MVVM + MVC + Q

      本文链接:https://www.haomeiwen.com/subject/vueqgttx.html