NoChat 是一个轻量级的聊天 UI 框架,没有任何特定样式。位于 示例 目录中的项目展示了如何使用这个框架轻松实现类似于 Telegram 或微信的用户界面的文本游戏。你可以用 NoChat 自定义自己的样式 :]
NoChat 支持多种安装方法。
下载并将 /NoChat/NoChat
文件夹拖放到您的项目中。
<NOCChatItem>
NOCChatContainerView
NOCChatInputPanel
NOCChatCollectionView
NOCChatCollectionViewLayout
NOCChatItemCell
<NOCChatItemCellLayout>
NOCChatViewController
导入框架。
#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
。需求是思维,不仅仅是代码,我认为。
导入框架。
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部分描述的相同方式。
查看内部示例项目。
UILabel
,并使用HPGrowingTextView编写文本输入面板。感谢这些贡献者。这些依赖项对NoChat
框架不是必需的。NoChat
是一个视图层框架,主要提供一个容器,就像UITableViewController
一样。源代码在MIT许可下分发。