mirror of
https://github.com/danog/Telegram.git
synced 2024-12-02 09:27:55 +01:00
99 lines
3.1 KiB
Objective-C
99 lines
3.1 KiB
Objective-C
#import "TGHashtagPanelCell.h"
|
|
|
|
#import "TGFont.h"
|
|
#import "TGImageUtils.h"
|
|
|
|
NSString *const TGHashtagPanelCellKind = @"TGHashtagPanelCell";
|
|
|
|
@interface TGHashtagPanelCell ()
|
|
{
|
|
TGModernConversationAssociatedInputPanelStyle _style;
|
|
UILabel *_label;
|
|
UIView *_separatorView;
|
|
}
|
|
|
|
@end
|
|
|
|
@implementation TGHashtagPanelCell
|
|
|
|
- (instancetype)initWithStyle:(TGModernConversationAssociatedInputPanelStyle)style
|
|
{
|
|
self = [super initWithStyle:UITableViewCellStyleDefault reuseIdentifier:TGHashtagPanelCellKind];
|
|
if (self != nil)
|
|
{
|
|
_style = style;
|
|
|
|
UIColor *backgroundColor = [UIColor whiteColor];
|
|
UIColor *textColor = [UIColor blackColor];
|
|
UIColor *selectionColor = TGSelectionColor();
|
|
|
|
if (style == TGModernConversationAssociatedInputPanelDarkStyle)
|
|
{
|
|
backgroundColor = UIColorRGB(0x171717);
|
|
textColor = [UIColor whiteColor];
|
|
selectionColor = UIColorRGB(0x292929);
|
|
}
|
|
else if (style == TGModernConversationAssociatedInputPanelDarkBlurredStyle)
|
|
{
|
|
backgroundColor = [UIColor clearColor];
|
|
textColor = [UIColor whiteColor];
|
|
selectionColor = UIColorRGB(0x3d3d3d);
|
|
}
|
|
|
|
self.backgroundColor = backgroundColor;
|
|
self.backgroundView = [[UIView alloc] init];
|
|
self.backgroundView.backgroundColor = backgroundColor;
|
|
self.backgroundView.opaque = false;
|
|
|
|
self.selectedBackgroundView = [[UIView alloc] init];
|
|
self.selectedBackgroundView.backgroundColor = selectionColor;
|
|
|
|
_label = [[UILabel alloc] init];
|
|
_label.backgroundColor = [UIColor clearColor];
|
|
_label.textColor = textColor;
|
|
_label.font = TGSystemFontOfSize(14.0f);
|
|
[self.contentView addSubview:_label];
|
|
}
|
|
return self;
|
|
}
|
|
|
|
- (void)setDisplaySeparator:(bool)displaySeparator
|
|
{
|
|
if (displaySeparator && _separatorView == nil)
|
|
{
|
|
UIColor *separatorColor = TGSeparatorColor();
|
|
if (_style == TGModernConversationAssociatedInputPanelDarkStyle)
|
|
separatorColor = UIColorRGB(0x292929);
|
|
|
|
_separatorView = [[UIView alloc] init];
|
|
_separatorView.backgroundColor = TGSeparatorColor();
|
|
[self insertSubview:_separatorView belowSubview:self.contentView];
|
|
[self setNeedsLayout];
|
|
}
|
|
}
|
|
|
|
- (void)setHashtag:(NSString *)hashtag
|
|
{
|
|
_label.text = [[NSString alloc] initWithFormat:@"#%@", hashtag];
|
|
[self setNeedsLayout];
|
|
}
|
|
|
|
- (void)layoutSubviews
|
|
{
|
|
[super layoutSubviews];
|
|
|
|
CGFloat inset = 15.0f;
|
|
CGSize labelSize = [_label.text sizeWithFont:_label.font];
|
|
labelSize.width = CGCeil(MIN(labelSize.width, self.frame.size.width - inset * 2.0f));
|
|
labelSize.height = CGCeil(labelSize.height);
|
|
_label.frame = CGRectMake(inset, CGFloor((self.frame.size.height - labelSize.height) / 2.0f), labelSize.width, labelSize.height);
|
|
|
|
if (_separatorView != nil)
|
|
{
|
|
CGFloat separatorHeight = TGIsRetina() ? 0.5f : 1.0f;
|
|
_separatorView.frame = CGRectMake(inset, self.frame.size.height - separatorHeight, self.frame.size.width - inset, separatorHeight);
|
|
}
|
|
}
|
|
|
|
@end
|