Files
peko-ios/YuMi/CustomUI/InputView/InputView/QInputPhototCell.m
2023-12-29 16:43:37 +08:00

129 lines
3.8 KiB
Objective-C

//
// QInputPhototCell.m
// YUMI
//
// Created by YUMI on 2023/1/11.
//
#import "QInputPhototCell.h"
///Third
#import <Masonry/Masonry.h>
#import "QPhotoImageModel.h"
#import "YUMIMacroUitls.h"
#import "UIImage+Utils.h"
#import "DJDKMIMOMColor.h"
#import "UIButton+EnlargeTouchArea.h"
@interface QInputPhototCell ()
///显示图片
@property (nonatomic,strong) UIImageView *logoImageView;
///选中
@property (nonatomic,strong) UIButton *chooseButton;
///选中的个数
@property (nonatomic,strong) UILabel *numberLabel;
@end
@implementation QInputPhototCell
- (instancetype)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
[self initSubViews];
[self initSubViewConstraints];
}
return self;
}
#pragma mark - Private Method
- (void)initSubViews {
[self.contentView addSubview:self.logoImageView];
[self.contentView addSubview:self.chooseButton];
[self.contentView addSubview:self.numberLabel];
}
- (void)initSubViewConstraints {
[self.logoImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self.contentView);
}];
[self.chooseButton mas_makeConstraints:^(MASConstraintMaker *make) {
make.size.mas_equalTo(CGSizeMake(20, 20));
make.right.top.mas_equalTo(self.contentView).inset(10);
}];
[self.numberLabel mas_makeConstraints:^(MASConstraintMaker *make) {
make.center.equalTo(self.chooseButton);
make.size.mas_equalTo(CGSizeMake(18, 18));
}];
}
#pragma mark - Event Response
- (void)chooseButtonAction:(UIButton *)sender {
sender.selected = !sender.selected;
self.imageInfo.isSelect = sender.selected;
if (self.delegate && [self.delegate respondsToSelector:@selector(qInputPhototCell:didClickChoose:)]) {
[self.delegate qInputPhototCell:self didClickChoose:self.imageInfo];
}
}
#pragma mark - Getters And Setters
- (void)setImageInfo:(QPhotoImageModel *)imageInfo {
_imageInfo = imageInfo;
if (_imageInfo) {
self.numberLabel.hidden = !imageInfo.isSelect;
self.chooseButton.selected = imageInfo.isSelect;
if (!imageInfo.originImage) {
[[TZImageManager manager] getPhotoWithAsset:imageInfo.assetInfo.asset completion:^(UIImage *photo, NSDictionary *info, BOOL isDegraded) {
self.logoImageView.image = photo;
self.imageInfo.originImage = photo;
UIImage * image = [photo compressWithMaxLength:1024 * 30];
self.imageInfo.compressImage = image;
} progressHandler:nil networkAccessAllowed:NO];
} else {
self.logoImageView.image = imageInfo.originImage;
}
self.numberLabel.text = [NSString stringWithFormat:@"%ld", imageInfo.number];
}
}
- (UIImageView *)logoImageView {
if (!_logoImageView) {
_logoImageView = [[UIImageView alloc] init];
_logoImageView.userInteractionEnabled = YES;
_logoImageView.layer.masksToBounds = YES;
_logoImageView.contentMode = UIViewContentModeScaleAspectFill;
_logoImageView.layer.cornerRadius = 4;
}
return _logoImageView;
}
- (UIButton *)chooseButton {
if (!_chooseButton) {
_chooseButton = [UIButton buttonWithType:UIButtonTypeCustom];
[_chooseButton setBackgroundImage:[UIImage imageNamed:@"session_input_tool_choose_normal"] forState:UIControlStateNormal];
[_chooseButton setBackgroundImage:[UIImage imageNamed:@"session_input_tool_choose_normal"] forState:UIControlStateSelected];
[_chooseButton addTarget:self action:@selector(chooseButtonAction:) forControlEvents:UIControlEventTouchUpInside];
[_chooseButton setEnlargeEdgeWithTop:10 right:10 bottom:10 left:10];
}
return _chooseButton;
}
- (UILabel *)numberLabel {
if (!_numberLabel) {
_numberLabel = [[UILabel alloc] init];
_numberLabel.font = [UIFont systemFontOfSize:10];
_numberLabel.textColor = [UIColor whiteColor];
_numberLabel.backgroundColor = [DJDKMIMOMColor colorWithHexString:@"#5FCCE4"];
_numberLabel.layer.masksToBounds = YES;
_numberLabel.layer.cornerRadius = 9;
_numberLabel.textAlignment = NSTextAlignmentCenter;
}
return _numberLabel;
}
@end