125 lines
4.0 KiB
Objective-C
125 lines
4.0 KiB
Objective-C
//
|
|
// KBSvipSubscribeCell.m
|
|
// keyBoard
|
|
//
|
|
// SVIP 订阅选项样式,使用背景图片切换选中状态
|
|
//
|
|
|
|
#import "KBSvipSubscribeCell.h"
|
|
|
|
@interface KBSvipSubscribeCell ()
|
|
@property (nonatomic, strong) UIImageView *bgImageView; // 背景图片
|
|
@property (nonatomic, strong) UILabel *titleLabel; // "1 Week" / "1 Month" / "1 Year"
|
|
@property (nonatomic, strong) UILabel *priceLabel; // "$6.90"
|
|
@property (nonatomic, strong) UILabel *strikeLabel; // 删除线原价
|
|
@end
|
|
|
|
@implementation KBSvipSubscribeCell
|
|
|
|
- (instancetype)initWithFrame:(CGRect)frame {
|
|
if (self = [super initWithFrame:frame]) {
|
|
self.contentView.backgroundColor = [UIColor clearColor];
|
|
|
|
[self.contentView addSubview:self.bgImageView];
|
|
[self.bgImageView mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.edges.equalTo(self.contentView);
|
|
}];
|
|
|
|
[self.contentView addSubview:self.titleLabel];
|
|
[self.contentView addSubview:self.priceLabel];
|
|
[self.contentView addSubview:self.strikeLabel];
|
|
|
|
[self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.centerX.equalTo(self.contentView);
|
|
make.top.equalTo(self.contentView).offset(12);
|
|
}];
|
|
[self.priceLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.centerX.equalTo(self.contentView);
|
|
make.top.equalTo(self.titleLabel.mas_bottom).offset(8);
|
|
}];
|
|
[self.strikeLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.centerX.equalTo(self.contentView);
|
|
make.top.equalTo(self.priceLabel.mas_bottom).offset(4);
|
|
}];
|
|
}
|
|
return self;
|
|
}
|
|
|
|
- (void)prepareForReuse {
|
|
[super prepareForReuse];
|
|
[self applySelected:NO animated:NO];
|
|
}
|
|
|
|
- (void)setSelected:(BOOL)selected {
|
|
[super setSelected:selected];
|
|
[self applySelected:selected animated:NO];
|
|
}
|
|
|
|
- (void)configTitle:(NSString *)title price:(NSString *)price strike:(nullable NSString *)strike {
|
|
self.titleLabel.text = title.length ? title : @"1 Month";
|
|
self.priceLabel.text = price.length ? price : @"$6.90";
|
|
self.strikeLabel.hidden = (strike.length == 0);
|
|
if (strike.length) {
|
|
NSDictionary *attr = @{
|
|
NSStrikethroughStyleAttributeName: @(NSUnderlineStyleSingle),
|
|
NSForegroundColorAttributeName: [UIColor colorWithHex:0x999999]
|
|
};
|
|
self.strikeLabel.attributedText = [[NSAttributedString alloc] initWithString:strike attributes:attr];
|
|
}
|
|
}
|
|
|
|
- (void)applySelected:(BOOL)selected animated:(BOOL)animated {
|
|
NSString *imageName = selected ? @"pay_colorbg_icon" : @"pay_graybg_icon";
|
|
void (^changes)(void) = ^{
|
|
self.bgImageView.image = [UIImage imageNamed:imageName];
|
|
};
|
|
if (animated) {
|
|
[UIView transitionWithView:self.bgImageView duration:0.2 options:UIViewAnimationOptionTransitionCrossDissolve animations:changes completion:nil];
|
|
} else {
|
|
changes();
|
|
}
|
|
}
|
|
|
|
#pragma mark - Lazy
|
|
|
|
- (UIImageView *)bgImageView {
|
|
if (!_bgImageView) {
|
|
_bgImageView = [UIImageView new];
|
|
_bgImageView.contentMode = UIViewContentModeScaleAspectFill;
|
|
_bgImageView.image = [UIImage imageNamed:@"pay_graybg_icon"];
|
|
}
|
|
return _bgImageView;
|
|
}
|
|
|
|
- (UILabel *)titleLabel {
|
|
if (!_titleLabel) {
|
|
_titleLabel = [UILabel new];
|
|
_titleLabel.text = @"1 Month";
|
|
_titleLabel.textColor = [UIColor colorWithHex:KBBlackValue];
|
|
_titleLabel.font = [KBFont medium:13];
|
|
}
|
|
return _titleLabel;
|
|
}
|
|
|
|
- (UILabel *)priceLabel {
|
|
if (!_priceLabel) {
|
|
_priceLabel = [UILabel new];
|
|
_priceLabel.text = @"$6.90";
|
|
_priceLabel.textColor = [UIColor colorWithHex:KBBlackValue];
|
|
_priceLabel.font = [KBFont bold:22];
|
|
}
|
|
return _priceLabel;
|
|
}
|
|
|
|
- (UILabel *)strikeLabel {
|
|
if (!_strikeLabel) {
|
|
_strikeLabel = [UILabel new];
|
|
_strikeLabel.text = @"$4.49";
|
|
_strikeLabel.font = [KBFont regular:12];
|
|
_strikeLabel.textColor = [UIColor colorWithHex:0x999999];
|
|
}
|
|
return _strikeLabel;
|
|
}
|
|
|
|
@end
|