Files
featherVoice/TUIKit/TUIMultimediaPlugin/Common/View/TUIMultimediaCheckBox.m
2025-08-08 10:49:36 +08:00

81 lines
2.4 KiB
Objective-C

// Copyright (c) 2024 Tencent. All rights reserved.
// Author: eddardliu
#import "TUIMultimediaCheckBox.h"
#import <Masonry/Masonry.h>
#import <TUICore/TUIThemeManager.h>
#import "TUIMultimediaPlugin/TUIMultimediaCommon.h"
#import "TUIMultimediaPlugin/TUIMultimediaImageUtil.h"
#import "TUIMultimediaPlugin/TUIMultimediaConfig.h"
@interface TUIMultimediaCheckBox () {
UILabel *_label;
UIImageView *_imgView;
UITapGestureRecognizer *_tapRec;
}
@end
@implementation TUIMultimediaCheckBox
- (id)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
_iconSize = CGSizeMake(18, 18);
UIImage *imgOff = [TUIMultimediaImageUtil imageFromImage:TUIMultimediaPluginBundleThemeImage(@"checkbox_off_img", @"checkbox_off") withTintColor:[[TUIMultimediaConfig sharedInstance] getThemeColor]];;
UIImage *imgOn = [TUIMultimediaImageUtil imageFromImage:TUIMultimediaPluginBundleThemeImage(@"checkbox_on_img", @"checkbox_on") withTintColor:[[TUIMultimediaConfig sharedInstance] getThemeColor]];
_imgView = [[UIImageView alloc] initWithImage:imgOff highlightedImage:imgOn];
[self addSubview:_imgView];
_imgView.contentMode = UIViewContentModeScaleAspectFit;
_label = [[UILabel alloc] init];
[self addSubview:_label];
_label.textColor = UIColor.whiteColor;
[_imgView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.top.bottom.equalTo(self);
make.size.mas_equalTo(self->_iconSize);
}];
[_label mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.equalTo(self);
make.left.equalTo(_imgView.mas_right).inset(5);
make.centerY.equalTo(_imgView);
}];
_tapRec = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onTap)];
[self addGestureRecognizer:_tapRec];
return self;
}
- (void)onTap {
[self setOn:!_on];
[self sendActionsForControlEvents:UIControlEventValueChanged];
}
#pragma mark - Properties
- (void)setOn:(BOOL)on {
_on = on;
_imgView.highlighted = on;
}
- (void)setIconSize:(CGSize)iconSize {
_iconSize = iconSize;
[_imgView mas_updateConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(self->_iconSize);
}];
}
- (NSString *)text {
return _label.text;
}
- (void)setText:(NSString *)text {
_label.text = text;
}
- (UIColor *)textColor {
return _label.textColor;
}
- (void)setTextColor:(UIColor *)textColor {
_label.textColor = textColor;
}
@end