NoChat is a lightweight chat UI framework which has no particular faces. The projects in Examples directory show you how to use this framework to implement a text game with user interface like Telegram or WeChat very easily. You can custom your own with NoChat :].
- Inverted mode
- Adaptive user interface
- Custom chat items and input panel
- Simple MVC pattern
- Supports both Objective-C and Swift
- iOS 8.0+
- Xcode 8.2.1 or above
NoChat supports multiple methods for install.
Include the following in your Podfile
:
target 'TargetName' do
pod 'NoChat', '~> 0.3'
end
Include the following in your Cartfile
:
github "little2s/NoChat" ~> 0.3
Download and drop /NoChat/NoChat
folder in your project.
<NOCChatItem>
NOCChatContainerView
NOCChatInputPanel
NOCChatCollectionView
NOCChatCollectionViewLayout
NOCChatItemCell
<NOCChatItemCellLayout>
NOCChatViewController
Import the framework.
#import <NoChat/NoChat.h>
You can create a subclass of NOCChatViewController
, and provide the data.
@interface TGChatViewController : NOCChatViewController
// ...
@end
@implementation TGChatViewController
// Overrides these three methods below to provide basic classes.
+ (Class)cellLayoutClassForItemType:(NSString *)type
{
// ...
}
+ (Class)inputPanelClass
{
// ...
}
- (void)registerChatItemCells
{
// ...
}
}
Implement your business in this subclass. You may update layouts
property through
these there methods provide by super class:
insertLayouts:atIndexes:animated:
deleteLayoutsAtIndexes:animated:
updateLayoutAtIndex:toLayout:animated:
And I also suggest you custom the view controller of chat with the protocols provide by NoChat.
I mean you can write your own ChatViewController
without NOCChatViewController
.
Source code is mind, not just code, I think.
Import the framework.
import NoChat
You can create a subclass of NOCChatViewController
, and provide the data.
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() {
// ...
}
}
Implement your business in this subclass. The same way as description in Objective-C section above.
See the Examples projects inside.
- This framework is inspired by Chatto and Telegram. Thanks.
- All reources in example projects are extracted from real app Telegram and WeChat. Do not use these resources in your project for business directly.
- The example use YYLabel instead of
UILabel
and HPGrowingTextView for writing text input panel. Thanks to these great contributers. And these dependencies are not essential forNoChat
framework.NoChat
is just a view layer framework which mainly provide a container just likeUITableViewController
. - Text game is migration from Here.
- If you prefer the pure swift version before 0.3, here is a great fork by @mbalex99 with swift 3 support: https://github.com/mbalex99/NoChat, thanks for their great work.
Source code is distributed under MIT license.