123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239 |
- //
- // CollectionImageCell.m
- // 乐销
- //
- // Created by 隋林栋 on 2017/3/14.
- // Copyright © 2017年 ping. All rights reserved.
- //
- #import "CollectionImageCell.h"
- #import "XG_AssetModel.h"
- #import "XG_AssetPickerManager.h"
- #import "UIView+XGAdd.h"
- @implementation CollectionImageCell
- #pragma mark 懒加载
- - (UIButton *)btnDelete{
- if (_btnDelete == nil) {
- _btnDelete = [UIButton buttonWithType:UIButtonTypeCustom];
- [_btnDelete setImage:[UIImage imageNamed:@"icon_delete2"] forState:(UIControlStateNormal)];
- _btnDelete.widthHeight = XY(W(20),W(20));
- _btnDelete.hidden = true;
- }
- return _btnDelete;
- }
- - (UIImageView *)ivImage{
- if (_ivImage == nil) {
- _ivImage = [UIImageView new];
- _ivImage.backgroundColor = [UIColor clearColor];
- _ivImage.image = nil;
- _ivImage.contentMode = UIViewContentModeScaleAspectFill;
- _ivImage.clipsToBounds = true;
- _ivImage.widthHeight = XY(W(90),W(90));
- _ivImage.leftTop = XY(0,W(15));
- }
- return _ivImage;
- }
- - (UILabel *)labelTitleBottom{
- if (!_labelTitleBottom) {
- _labelTitleBottom = [UILabel new];
- _labelTitleBottom.textColor = COLOR_TEXT;
- _labelTitleBottom.fontNum = F(13);
- _labelTitleBottom.numLimit = 4;
- _labelTitleBottom.backgroundColor = [UIColor clearColor];
- _labelTitleBottom.hidden = true;
- }
- return _labelTitleBottom;
- }
- #pragma mark 获取高度
- + (CGSize)fetchHeight{
- static CollectionImageCell * cell;
- if (cell == nil) {
- cell = [self new];
- }
- return [cell resetCellWithModel:nil];
- }
- + (CGSize)fetchHeightWithTitle{
- static CollectionImageCell * cell;
- if (cell == nil) {
- cell = [self new];
- }
- cell.isShowTitleBottom = true;
- return [cell resetCellWithModel:nil];
- }
- #pragma mark 初始化
- - (instancetype)initWithFrame:(CGRect)frame{
- self = [super initWithFrame:frame];
- if (self) {
- self.contentView.backgroundColor = [UIColor clearColor];
- self.backgroundColor = [UIColor clearColor];
-
- [self.contentView addSubview:self.ivImage];
- [self.contentView addSubview:self.btnDelete];
- [self.contentView addSubview:self.labelTitleBottom];
- }
- return self;
- }
- - (void)setModel:(XG_AssetModel *)model{
- _model = model;
- self.ivImage.leftTop = XY(0,0);
- //label bottom
- self.labelTitleBottom.centerXTop = XY(self.ivImage.centerX, self.ivImage.bottom + W(5));
- self.labelTitleBottom.hidden = !self.isShowTitleBottom;
- //btn delete
- self.btnDelete.rightTop = XY(self.ivImage.right-5,self.ivImage.top+5);
- if (_model.isPlaceholder) {
- self.ivImage.image = [UIImage imageNamed:isStr(self.imgName)?UnPackStr(self.imgName):@"addphoto"];
- self.btnDelete.hidden = YES;
- }else{
- self.btnDelete.hidden = NO;
-
- if (model.asset) {//本地图片
- [[XG_AssetPickerManager manager] getPhotoWithAsset1:_model.asset completion:^(UIImage *photo, NSDictionary *info) {
- self.ivImage.image = photo;
- if (self.blockModel) {
- self.blockModel(photo);
- }
- }];
- }else{//网络图片
- UIImage * imageSmallCache = [[SDWebImageManager sharedManager].imageCache imageFromDiskCacheForKey:model.url];
- if (!imageSmallCache) {
- imageSmallCache = [[SDWebImageManager sharedManager].imageCache imageFromDiskCacheForKey:model.url];
- }
- [self.ivImage sd_setImageWithURL:[NSURL URLWithString:model.url] placeholderImage:[UIImage imageNamed:@""]];
- }
-
-
- }
-
- }
- - (void)resetWithModel:(XG_AssetModel *)model{
- _model = model;
- self.ivImage.leftTop = XY(0,0);
- //label bottom
- self.labelTitleBottom.centerXTop = XY(self.ivImage.centerX, self.ivImage.bottom + W(5));
- self.labelTitleBottom.hidden = !self.isShowTitleBottom;
- //btn delete
- self.btnDelete.rightTop = XY(self.ivImage.right-5,self.ivImage.top+5);
- if (model.isPlaceholder) {
- self.ivImage.image = [UIImage imageNamed:@"addphoto"];
- self.btnDelete.hidden = YES;
- }else{
- self.btnDelete.hidden = NO;
- [[XG_AssetPickerManager manager] getPhotoWithAsset:_model.asset photoWidth:self.frame.size.width completion:^(UIImage *photo, NSDictionary *info) {
- self.ivImage.image = photo;
- }];
- self.height =self.ivImage.height + W(15)+(self.isShowTitleBottom?self.labelTitleBottom.bottom - self.ivImage.bottom:0);
- }
- }
- #pragma mark 刷新cell
- - (CGSize)resetCellWithModel:(ModelImage *)model{
- // self.model = model;
- self.btnDelete.hidden = false;
- //iv
- self.ivImage.leftTop = XY(W(15),0);
- [self.ivImage sd_setImageWithModel:model placeholderImageName:IMAGE_BIG_DEFAULT];
- //label bottom
- [self.labelTitleBottom fitTitle:UnPackStr(model.desc) variable:0];
- self.labelTitleBottom.centerXTop = XY(self.ivImage.centerX, self.ivImage.bottom + W(5));
- self.labelTitleBottom.hidden = !self.isShowTitleBottom;
- //btn delete
- self.btnDelete.rightTop = XY(self.ivImage.right-5,self.ivImage.top+5);
- return CGSizeMake(self.ivImage.width, self.ivImage.height + W(15)+(self.isShowTitleBottom?self.labelTitleBottom.bottom - self.ivImage.bottom:0));
- }
- //照相机 cell
- - (void)resetCellWithCamera{
- [self resetCellWithModel:^(){
- ModelImage * model = [ModelImage new];
- model.desc = @"添加";
- return model;
- }()];
- self.ivImage.image = [UIImage imageNamed:isStr(self.imgName)?self.imgName:@"addphoto"];
- self.btnDelete.hidden = true;
- }
- @end
- @implementation CollectionCustomeImageSizeCell
- @synthesize ivImage = _ivImage1;
- - (UIImageView *)ivImage{
- if (_ivImage1 == nil) {
- _ivImage1 = [UIImageView new];
- _ivImage1.backgroundColor = [UIColor clearColor];
- _ivImage1.image = nil;
- _ivImage1.contentMode = UIViewContentModeScaleAspectFill;
- _ivImage1.clipsToBounds = true;
- _ivImage1.widthHeight = XY(W(105),W(105));
- _ivImage1.leftTop = XY(0,W(15));
- }
- return _ivImage1;
- }
- #pragma mark 获取高度
- + (CGSize)fetchHeight{
- static CollectionImageCell * cell;
- if (cell == nil) {
- cell = [self new];
- }
- return [cell resetCellWithModel:nil];
- }
- + (CGSize)fetchHeightWithTitle{
- static CollectionImageCell * cell;
- if (cell == nil) {
- cell = [self new];
- }
- cell.isShowTitleBottom = true;
- return [cell resetCellWithModel:nil];
- }
- @end
- @implementation CollectionCustomeImageReplyCell
- @synthesize ivImage = _ivImage1;
- - (UIImageView *)ivImage{
- if (_ivImage1 == nil) {
- _ivImage1 = [UIImageView new];
- _ivImage1.backgroundColor = [UIColor clearColor];
- _ivImage1.contentMode = UIViewContentModeScaleAspectFill;
- _ivImage1.clipsToBounds = true;
- _ivImage1.widthHeight = XY(W(105),W(105));
- _ivImage1.leftTop = XY(0,0);
- }
- return _ivImage1;
- }
- #pragma mark 刷新cell
- - (CGSize)resetCellWithModel:(ModelImage *)model{
- //iv
- self.ivImage.leftTop = XY(W(5),0);
- [self.ivImage sd_setImageWithModel:model placeholderImageName:IMAGE_BIG_DEFAULT];
- //label bottom
- [self.labelTitleBottom fitTitle:UnPackStr(model.desc) variable:0];
- self.labelTitleBottom.centerXTop = XY(self.ivImage.centerX, self.ivImage.bottom + W(5));
- self.labelTitleBottom.hidden = !self.isShowTitleBottom;
- //btn delete
- self.btnDelete.centerXCenterY = XY(self.ivImage.right,self.ivImage.top);
- return CGSizeMake(self.ivImage.width+W(5), self.ivImage.height+(self.isShowTitleBottom?self.labelTitleBottom.bottom - self.ivImage.bottom + W(15):0));
- }
- #pragma mark 获取高度
- + (CGSize)fetchHeight{
- static CollectionImageCell * cell;
- if (cell == nil) {
- cell = [self new];
- }
- return [cell resetCellWithModel:nil];
- }
- + (CGSize)fetchHeightWithTitle{
- static CollectionImageCell * cell;
- if (cell == nil) {
- cell = [self new];
- }
- cell.isShowTitleBottom = true;
- return [cell resetCellWithModel:nil];
- }
- @end
|