mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
122 lines
4.1 KiB
Objective-C
122 lines
4.1 KiB
Objective-C
#import "TGMenuSheetTitleItemView.h"
|
|
|
|
#import "LegacyComponentsInternal.h"
|
|
#import "TGFont.h"
|
|
|
|
#import "TGMenuSheetController.h"
|
|
|
|
@interface TGMenuSheetTitleItemView ()
|
|
{
|
|
UILabel *_titleLabel;
|
|
UILabel *_subtitleLabel;
|
|
|
|
bool _solidSubtitle;
|
|
}
|
|
@end
|
|
|
|
@implementation TGMenuSheetTitleItemView
|
|
|
|
- (instancetype)initWithTitle:(NSString *)title subtitle:(NSString *)subtitle
|
|
{
|
|
return [self initWithTitle:title subtitle:subtitle solidSubtitle:false];
|
|
}
|
|
|
|
- (instancetype)initWithTitle:(NSString *)title subtitle:(NSString *)subtitle solidSubtitle:(bool)solidSubtitle
|
|
{
|
|
self = [super initWithType:TGMenuSheetItemTypeDefault];
|
|
if (self != nil)
|
|
{
|
|
_solidSubtitle = solidSubtitle;
|
|
|
|
_titleLabel = [[UILabel alloc] init];
|
|
_titleLabel.backgroundColor = [UIColor whiteColor];
|
|
_titleLabel.font = TGMediumSystemFontOfSize(13);
|
|
_titleLabel.numberOfLines = 0;
|
|
_titleLabel.text = title;
|
|
_titleLabel.textColor = UIColorRGB(0x8f8f8f);
|
|
_titleLabel.textAlignment = NSTextAlignmentCenter;
|
|
[self addSubview:_titleLabel];
|
|
|
|
_subtitleLabel = [[UILabel alloc] init];
|
|
_subtitleLabel.backgroundColor = [UIColor whiteColor];
|
|
_subtitleLabel.font = TGSystemFontOfSize(13);
|
|
_subtitleLabel.numberOfLines = 0;
|
|
_subtitleLabel.text = subtitle;
|
|
_subtitleLabel.textColor = UIColorRGB(0x8f8f8f);
|
|
_subtitleLabel.textAlignment = NSTextAlignmentCenter;
|
|
[self addSubview:_subtitleLabel];
|
|
}
|
|
return self;
|
|
}
|
|
|
|
- (void)setDark
|
|
{
|
|
_titleLabel.backgroundColor = [UIColor clearColor];
|
|
_titleLabel.textColor = UIColorRGB(0x777777);
|
|
|
|
_subtitleLabel.backgroundColor = [UIColor clearColor];
|
|
_subtitleLabel.textColor = UIColorRGB(0x777777);
|
|
|
|
if (@available(iOS 11.0, *)) {
|
|
self.accessibilityIgnoresInvertColors = true;
|
|
}
|
|
}
|
|
|
|
- (void)setPallete:(TGMenuSheetPallete *)pallete
|
|
{
|
|
_titleLabel.backgroundColor = [UIColor clearColor];
|
|
_titleLabel.textColor = pallete.textColor;
|
|
|
|
_subtitleLabel.backgroundColor = [UIColor clearColor];
|
|
_subtitleLabel.textColor = _solidSubtitle ? pallete.textColor : pallete.secondaryTextColor;
|
|
}
|
|
|
|
- (CGFloat)preferredHeightForWidth:(CGFloat)width screenHeight:(CGFloat)__unused screenHeight
|
|
{
|
|
CGFloat height = 16.0f;
|
|
|
|
if (_titleLabel.text.length > 0)
|
|
{
|
|
NSAttributedString *string = [[NSAttributedString alloc] initWithString:_titleLabel.text attributes:@{ NSFontAttributeName: _titleLabel.font }];
|
|
CGSize textSize = [string boundingRectWithSize:CGSizeMake(width - 10.0f * 2.0f, screenHeight) options:NSStringDrawingUsesLineFragmentOrigin context:nil].size;
|
|
_titleLabel.frame = CGRectMake(_titleLabel.frame.origin.x, _titleLabel.frame.origin.y, ceil(textSize.width), ceil(textSize.height));
|
|
height += _titleLabel.frame.size.height;
|
|
}
|
|
|
|
if (_subtitleLabel.text.length > 0)
|
|
{
|
|
NSAttributedString *string = [[NSAttributedString alloc] initWithString:_subtitleLabel.text attributes:@{ NSFontAttributeName: _subtitleLabel.font }];
|
|
CGSize textSize = [string boundingRectWithSize:CGSizeMake(width - 10.0f * 2.0f, screenHeight) options:NSStringDrawingUsesLineFragmentOrigin context:nil].size;
|
|
_subtitleLabel.frame = CGRectMake(_subtitleLabel.frame.origin.x, _subtitleLabel.frame.origin.y, ceil(textSize.width), ceil(textSize.height));
|
|
height += _subtitleLabel.frame.size.height;
|
|
}
|
|
|
|
height += 8.0f;
|
|
|
|
return height;
|
|
}
|
|
|
|
- (bool)requiresDivider
|
|
{
|
|
return false;
|
|
}
|
|
|
|
- (void)layoutSubviews
|
|
{
|
|
CGFloat topOffset = 16.0f;
|
|
|
|
if (_titleLabel.text.length > 0)
|
|
{
|
|
_titleLabel.frame = CGRectMake(floor((self.frame.size.width - _titleLabel.frame.size.width) / 2.0f), topOffset, _titleLabel.frame.size.width, _titleLabel.frame.size.height);
|
|
topOffset += _titleLabel.frame.size.height;
|
|
}
|
|
|
|
if (_subtitleLabel.text.length > 0)
|
|
{
|
|
_subtitleLabel.frame = CGRectMake(floor((self.frame.size.width - _subtitleLabel.frame.size.width) / 2.0f), topOffset, _subtitleLabel.frame.size.width, _subtitleLabel.frame.size.height);
|
|
topOffset += _subtitleLabel.frame.size.height;
|
|
}
|
|
}
|
|
|
|
@end
|