122 lines
3.4 KiB
Objective-C
122 lines
3.4 KiB
Objective-C
//
|
|
// TLEmojiKeyboard.m
|
|
// TLChat
|
|
//
|
|
// Created by 李伯坤 on 16/2/17.
|
|
// Copyright © 2016年 李伯坤. All rights reserved.
|
|
//
|
|
|
|
#import "TLEmojiKeyboard.h"
|
|
#import "TLEmojiKeyboard+DisplayView.h"
|
|
#import "TLEmojiKeyboard+EmojiGroupControl.h"
|
|
#import "TLChatMacros.h"
|
|
|
|
static TLEmojiKeyboard *emojiKB;
|
|
|
|
@implementation TLEmojiKeyboard
|
|
|
|
+ (TLEmojiKeyboard *)keyboard
|
|
{
|
|
static dispatch_once_t once;
|
|
dispatch_once(&once, ^{
|
|
emojiKB = [[TLEmojiKeyboard alloc] init];
|
|
});
|
|
return emojiKB;
|
|
}
|
|
|
|
- (id)init
|
|
{
|
|
if (self = [super init]) {
|
|
[self setBackgroundColor:[UIColor colorGrayForChatBar]];
|
|
[self addSubview:self.displayView];
|
|
[self addSubview:self.pageControl];
|
|
[self addSubview:self.groupControl];
|
|
[self p_addMasonry];
|
|
}
|
|
return self;
|
|
}
|
|
|
|
- (void)setEmojiGroupData:(NSMutableArray *)emojiGroupData
|
|
{
|
|
_emojiGroupData = emojiGroupData;
|
|
[self.displayView setData:emojiGroupData];
|
|
[self.groupControl setEmojiGroupData:emojiGroupData];
|
|
}
|
|
|
|
#pragma mark - # Public Methods
|
|
- (void)reset
|
|
{
|
|
// [self.collectionView scrollRectToVisible:CGRectMake(0, 0, self.collectionView.width, self.collectionView.height) animated:NO];
|
|
}
|
|
|
|
#pragma mark - # Event Response
|
|
- (void)pageControlChanged:(UIPageControl *)pageControl
|
|
{
|
|
// [self.collectionView scrollRectToVisible:CGRectMake(SCREEN_WIDTH * pageControl.currentPage, 0, SCREEN_WIDTH, HEIGHT_PAGECONTROL) animated:YES];
|
|
}
|
|
|
|
#pragma mark - # Private Methods
|
|
- (void)p_addMasonry
|
|
{
|
|
[self.displayView mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.top.mas_equalTo(self);
|
|
make.left.and.right.mas_equalTo(self);
|
|
make.bottom.mas_equalTo(self.pageControl.mas_top);
|
|
}];
|
|
[self.pageControl mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.left.and.right.mas_equalTo(self);
|
|
make.bottom.mas_equalTo(self.groupControl.mas_top);
|
|
make.height.mas_equalTo(20);
|
|
}];
|
|
[self.groupControl mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.left.and.right.and.bottom.mas_equalTo(self);
|
|
make.height.mas_equalTo(37);
|
|
}];
|
|
}
|
|
|
|
- (void)drawRect:(CGRect)rect
|
|
{
|
|
[super drawRect:rect];
|
|
// 顶部直线
|
|
CGContextRef context = UIGraphicsGetCurrentContext();
|
|
CGContextSetLineWidth(context, 0.5);
|
|
CGContextSetStrokeColorWithColor(context, [UIColor colorGrayLine].CGColor);
|
|
CGContextBeginPath(context);
|
|
CGContextMoveToPoint(context, 0, 0);
|
|
CGContextAddLineToPoint(context, SCREEN_WIDTH, 0);
|
|
CGContextStrokePath(context);
|
|
}
|
|
|
|
#pragma mark - # Getter
|
|
- (TLEmojiGroupDisplayView *)displayView
|
|
{
|
|
if (_displayView == nil) {
|
|
_displayView = [[TLEmojiGroupDisplayView alloc] init];
|
|
[_displayView setDelegate:self];
|
|
}
|
|
return _displayView;
|
|
}
|
|
|
|
- (UIPageControl *)pageControl
|
|
{
|
|
if (_pageControl == nil) {
|
|
_pageControl = [[UIPageControl alloc] init];
|
|
_pageControl.centerX = self.centerX;
|
|
[_pageControl setPageIndicatorTintColor:[UIColor colorGrayLine]];
|
|
[_pageControl setCurrentPageIndicatorTintColor:[UIColor grayColor]];
|
|
[_pageControl addTarget:self action:@selector(pageControlChanged:) forControlEvents:UIControlEventValueChanged];
|
|
}
|
|
return _pageControl;
|
|
}
|
|
|
|
- (TLEmojiGroupControl *)groupControl
|
|
{
|
|
if (_groupControl == nil) {
|
|
_groupControl = [[TLEmojiGroupControl alloc] init];
|
|
[_groupControl setDelegate:self];
|
|
}
|
|
return _groupControl;
|
|
}
|
|
|
|
@end
|