Files
2026-07-13 12:35:01 +08:00

118 lines
3.2 KiB
Objective-C

//
// TLEmojiDisplayView.m
// TLChat
//
// Created by 李伯坤 on 16/3/16.
// Copyright © 2016年 李伯坤. All rights reserved.
//
#import "TLEmojiDisplayView.h"
#define SIZE_TIPS CGSizeMake(55, 100)
@interface TLEmojiDisplayView ()
@property (nonatomic, strong) UIImageView *imageView;
@property (nonatomic, strong) UILabel *imageLabel;
@property (nonatomic, strong) UILabel *titleLabel;
@end
@implementation TLEmojiDisplayView
- (id)initWithFrame:(CGRect)frame
{
if (self = [super initWithFrame:CGRectMake(0, 0, SIZE_TIPS.width, SIZE_TIPS.height)]) {
[self setImage:[UIImage imageNamed:@"emojiKB_tips"]];
[self addSubview:self.imageLabel];
[self addSubview:self.imageView];
[self addSubview:self.titleLabel];
[self p_addMasonry];
}
return self;
}
- (void)displayEmoji:(TLExpressionModel *)emoji atRect:(CGRect)rect
{
[self setRect:rect];
[self setEmoji:emoji];
}
- (void)setEmoji:(TLExpressionModel *)emoji
{
_emoji = emoji;
if (emoji.type == TLEmojiTypeEmoji) {
[self.imageLabel setHidden:NO];
[self.imageView setHidden:YES];
[self.titleLabel setHidden:YES];
[self.imageLabel setText:emoji.name];
}
else if (emoji.type == TLEmojiTypeFace) {
[self.imageLabel setHidden:YES];
[self.imageView setHidden:NO];
[self.titleLabel setHidden:NO];
[self.imageView setImage:[UIImage imageNamed:emoji.name]];
[self.titleLabel setText:[emoji.name substringWithRange:NSMakeRange(1, emoji.name.length - 2)]];
}
}
- (void)setRect:(CGRect)rect
{
[self setCenterX:rect.origin.x + rect.size.width / 2];
[self setY:rect.origin.y + rect.size.height - self.height - 5];
}
#pragma mark - Private Methods -
- (void)p_addMasonry
{
[self.imageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(self).mas_offset(10);
make.left.mas_equalTo(self).mas_offset(12);
make.right.mas_equalTo(self).mas_equalTo(-12);
make.height.mas_equalTo(self.imageView.mas_width);
}];
[self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(self.imageView.mas_bottom).mas_offset(5);
make.centerX.mas_equalTo(self);
make.width.mas_lessThanOrEqualTo(self);
}];
[self.imageLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.and.height.and.centerX.mas_equalTo(self.imageView);
make.top.mas_equalTo(self).mas_offset(12);
}];
}
#pragma mark - Getter -
- (UIImageView *)imageView
{
if (_imageView == nil) {
_imageView = [[UIImageView alloc] init];
}
return _imageView;
}
- (UILabel *)titleLabel
{
if (_titleLabel == nil) {
_titleLabel = [[UILabel alloc] init];
[_titleLabel setFont:[UIFont systemFontOfSize:12.0f]];
[_titleLabel setTextColor:[UIColor grayColor]];
}
return _titleLabel;
}
- (UILabel *)imageLabel
{
if (_imageLabel == nil) {
_imageLabel = [[UILabel alloc] init];
[_imageLabel setTextAlignment:NSTextAlignmentCenter];
[_imageLabel setHidden:YES];
[_imageLabel setFont:[UIFont systemFontOfSize:30.0f]];
}
return _imageLabel;
}
@end