129 lines
3.8 KiB
Objective-C
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
|