Files
peko-ios/YuMi/Modules/YMRoom/View/RoomPhotoAlbum/View/Cell/PIRoomPhotoAlbumItemCell.m

191 lines
7.1 KiB
Objective-C

//
// PIRoomPhotoAlbumItemCell.m
// YuMi
//
// Created by duoban on 2023/10/11.
//
#import "PIRoomPhotoAlbumItemCell.h"
@interface PIRoomPhotoAlbumItemCell()
///操作
@property(nonatomic,strong) UIButton *operateBtn;
///背景图片
@property(nonatomic,strong) NetImageView *bgImageView;
///底部遮影
@property(nonatomic,strong) UIView *coverView;
///礼物
@property(nonatomic,strong) NetImageView *giftView;
///钻石icon
@property(nonatomic,strong) UIImageView *diamondView;
///钻石数量
@property(nonatomic,strong) UILabel *pi_priceView;
///锁
@property(nonatomic,strong) UIImageView *lockView;
@end
@implementation PIRoomPhotoAlbumItemCell
-(instancetype)initWithFrame:(CGRect)frame{
self = [super initWithFrame:frame];
if(self){
[self installUI];
[self installConstraints];
}
return self;
}
-(void)installUI{
[self.contentView addSubview:self.bgImageView];
[self.bgImageView addSubview:self.operateBtn];
[self.bgImageView addSubview:self.coverView];
[self.bgImageView addSubview:self.lockView];
[self.coverView addSubview:self.giftView];
[self.coverView addSubview:self.diamondView];
[self.coverView addSubview:self.pi_priceView];
}
-(void)installConstraints{
[self.bgImageView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self.contentView);
}];
[self.operateBtn mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.mas_equalTo(kGetScaleWidth(28));
make.height.mas_equalTo(kGetScaleWidth(18));
make.top.trailing.equalTo(self.bgImageView);
}];
[self.coverView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.bottom.trailing.equalTo(self.bgImageView);
make.height.mas_equalTo(kGetScaleWidth(32));
}];
[self.giftView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.height.mas_equalTo(kGetScaleWidth(24));
make.leading.mas_equalTo(kGetScaleWidth(8));
make.centerY.equalTo(self.coverView);
}];
[self.diamondView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.height.mas_equalTo(kGetScaleWidth(16));
make.centerY.equalTo(self.coverView);
make.leading.mas_equalTo(kGetScaleWidth(38));
}];
[self.pi_priceView mas_makeConstraints:^(MASConstraintMaker *make) {
make.leading.mas_equalTo(kGetScaleWidth(55));
make.centerY.equalTo(self.coverView);
make.trailing.mas_equalTo(-kGetScaleWidth(8));
}];
[self.lockView mas_makeConstraints:^(MASConstraintMaker *make) {
make.width.height.mas_equalTo(kGetScaleWidth(36));
make.centerX.equalTo(self.contentView);
make.top.mas_equalTo(kGetScaleWidth(54));
}];
}
-(void)setAlbumModel:(PIRoomPhotoAlbumItemModel *)albumModel{
_albumModel = albumModel;
@kWeakify(self);
self.coverView.hidden = _albumModel.type.intValue == 1;
self.operateBtn.hidden = !([_albumModel.uid isEqualToString:[AccountInfoStorage instance].getUid] && self.roomType == Photo_Album_Type_Mine);
if(_albumModel.type.intValue == 2){
_pi_priceView.text = _albumModel.totalGoldPrice;
_lockView.hidden = _albumModel.status == 1;
_giftView.imageUrl = _albumModel.giftUrl;
if(_albumModel.status == 0){
[self.bgImageView loadImageWithUrl:_albumModel.photoUrl completion:^(UIImage * _Nonnull image, NSURL * _Nonnull url) {
@kStrongify(self);
dispatch_async(dispatch_get_main_queue(), ^{
// UI更新代码
self.bgImageView.image = [UIImage setBlurImage:image value:30];
});
}];
}else{
self.bgImageView.image = nil;
[self.bgImageView loadImageWithUrl:_albumModel.photoUrl completion:^(UIImage * _Nonnull image, NSURL * _Nonnull url) {
@kStrongify(self);
self.bgImageView.image = image;
}];
}
}else{
_lockView.hidden = YES;
_pi_priceView.text = _albumModel.totalGoldPrice;
self.bgImageView.image = nil;
[self.bgImageView loadImageWithUrl:_albumModel.photoUrl completion:^(UIImage * _Nonnull image, NSURL * _Nonnull url) {
@kStrongify(self);
self.bgImageView.image = image;
}];
_giftView.image = nil;
}
}
-(void)operateAction{
if(self.delegate && [self.delegate respondsToSelector:@selector(pIRoomPhotoAlbumItemCell:clickMornWithModel:)]){
[self.delegate pIRoomPhotoAlbumItemCell:self clickMornWithModel:self.albumModel];
}
}
#pragma mark - 懒加载
- (NetImageView *)bgImageView{
if(!_bgImageView){
NetImageConfig *config = [[NetImageConfig alloc]init];
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
_bgImageView = [[NetImageView alloc]initWithConfig:config];
_bgImageView.userInteractionEnabled = YES;
[_bgImageView setCornerWithLeftTopCorner:kGetScaleWidth(10) rightTopCorner:kGetScaleWidth(10) bottomLeftCorner:kGetScaleWidth(10) bottomRightCorner:kGetScaleWidth(10) size:CGSizeMake(kGetScaleWidth(168), kGetScaleWidth(170))];
_bgImageView.contentMode = UIViewContentModeScaleAspectFill;
}
return _bgImageView;
}
- (UIView *)coverView{
if(!_coverView){
_coverView = [UIView new];
_coverView.backgroundColor = [UIColor colorWithWhite:0 alpha:0.6];
[_coverView setCornerWithLeftTopCorner:0 rightTopCorner:kGetScaleWidth(8) bottomLeftCorner:kGetScaleWidth(8) bottomRightCorner:kGetScaleWidth(8) size:CGSizeMake(kGetScaleWidth(168), kGetScaleWidth(32))];
}
return _coverView;
}
- (NetImageView *)giftView{
if(!_giftView){
NetImageConfig *config = [[NetImageConfig alloc]init];
config.placeHolder = [UIImageConstant defaultAvatarPlaceholder];
_giftView = [[NetImageView alloc]initWithConfig:config];
_giftView.backgroundColor = UIColorFromRGB(0x001338);
_giftView.layer.cornerRadius = kGetScaleWidth(4);
_giftView.layer.masksToBounds = YES;
_giftView.layer.borderWidth = 0.5;
_giftView.layer.borderColor = UIColorFromRGB(0xD6D6D6).CGColor;
}
return _giftView;
}
- (UIImageView *)diamondView{
if(!_diamondView){
_diamondView = [UIImageView new];
_diamondView.image = kImage(@"moli_money_icon");
}
return _diamondView;
}
- (UIImageView *)lockView{
if(!_lockView){
_lockView = [UIImageView new];
_lockView.image = kImage(@"pi_room_photo_album_lock");
}
return _lockView;
}
- (UILabel *)pi_priceView{
if(!_pi_priceView){
_pi_priceView = [UILabel labelInitWithText:@"0" font:kFontRegular(14) textColor:[UIColor whiteColor]];
}
return _pi_priceView;
}
- (UIButton *)operateBtn{
if(!_operateBtn){
_operateBtn = [UIButton new];
[_operateBtn setBackgroundImage:kImage(@"pi_room_photo_album_operate") forState:UIControlStateNormal];
[_operateBtn setEnlargeEdgeWithTop:10 right:10 bottom:10 left:10];
[_operateBtn addTarget:self action:@selector(operateAction) forControlEvents:UIControlEventTouchUpInside];
}
return _operateBtn;
}
@end