NoChat 0.3.2

NoChat 0.3.2

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最后发布2017年2月

段应伦 维护。



NoChat 0.3.2

  • 段应伦

NoChat

NoChat 是一个轻量级的聊天 UI 框架,没有任何特定样式。位于 示例 目录中的项目展示了如何使用这个框架轻松实现类似于 Telegram 或微信的用户界面的文本游戏。你可以用 NoChat 自定义自己的样式 :]

  

特色功能

  • 反转模式
  • 自适应用户界面
  • 自定义聊天条目和输入面板
  • 简单的 MVC 模式
  • 支持 Objective-C 和 Swift

要求

  • iOS 8.0+
  • Xcode 8.2.1 或更高版本

安装

NoChat 支持多种安装方法。

手动安装

下载并将 /NoChat/NoChat 文件夹拖放到您的项目中。

架构

模型

  • <NOCChatItem>

视图

  • NOCChatContainerView
  • NOCChatInputPanel
  • NOCChatCollectionView
  • NOCChatCollectionViewLayout
  • NOCChatItemCell
  • <NOCChatItemCellLayout>

视图控制器

  • NOCChatViewController

用法

Objective-C

导入框架。

#import <NoChat/NoChat.h>

您可以创建 NOCChatViewController 的子类,并提供建议的数据。

@interface TGChatViewController : NOCChatViewController
    // ...
@end

@implementation TGChatViewController

    // Overrides these three methods below to provide basic classes.
    + (Class)cellLayoutClassForItemType:(NSString *)type
    {
        // ...
    }

    + (Class)inputPanelClass
    {
        // ...
    }

    - (void)registerChatItemCells
    {
        // ...
    }

}

在子类中实现您自己的业务逻辑。您可能需要通过父类提供的这三种方法来更新 layout 属性

  • insertLayouts:atIndexes:animated
  • deleteLayoutsAtIndexes:animated
  • updateLayoutAtIndex:toLayout:animated

我还建议您使用 NoChat 提供的协议自定义聊天视图控制器。我的意思是,您可以编写自己的 ChatViewController 而无需 NOCChatViewController。需求是思维,不仅仅是代码,我认为。

Swift

导入框架。

import NoChat

您可以创建 NOCChatViewController 的子类,并提供建议的数据。

class TGChatViewController: NOCChatViewController {

    // Overrides these three methods below to provide basic classes.
    override class func cellLayoutClass(forItemType type: String) -> Swift.AnyClass? {
        // ...
    }

    override class func inputPanelClass() -> Swift.AnyClass? {
        // ...
    }

    override func registerChatItemCells() {
        // ...
    }

}

在此子类中实现您的业务。与上面Objective-C部分描述的相同方式。

更多

查看内部示例项目。

关于

  • 本框架的灵感来自ChattoTelegram。感谢。
  • 示例项目中的所有资源均来自真实应用Telegram微信。请不要在您的项目中直接使用这些资源进行商业用途。
  • 示例使用YYLabel代替UILabel,并使用HPGrowingTextView编写文本输入面板。感谢这些贡献者。这些依赖项对NoChat框架不是必需的。NoChat是一个视图层框架,主要提供一个容器,就像UITableViewController一样。
  • 文字游戏是从这里迁移过来的。
  • 如果您更喜欢0.3之前的纯Swift版本,这里有一个由@mbalex99做出的不错分支,支持Swift 3:https://github.com/mbalex99/NoChat,感谢他们的出色工作。

许可

源代码在MIT许可下分发。