ios.--UICollectionView--cell自适应
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ios.--UICollectionView--cell⾃适应
#pragma mark — 视图控制器中使⽤:(关键)
layout.estimatedItemSize = CGSizeMake(WIDTH, 60); // layout约束这边必须要⽤estimatedItemSize才能实现⾃适应,使⽤itemSzie⽆效//
// 商品详情容器详情 cell
#import <UIKit/UIKit.h>
@interface DetailsViewCell : UICollectionViewCell
@property (nonatomic,strong) CategorizeListOfGoodsModel *goodsitemmodel;
@end
#import"DetailsViewCell.h"
@interface DetailsViewCell()
@property (nonatomic,strong) UILabel *titletxt;//标题
@property (nonatomic,strong) UILabel *pracetxt;//价格
@property (nonatomic,strong) UILabel *msaletxt;//销量
@end
@implementation DetailsViewCell
- (void)setGoodsitemmodel:(CategorizeListOfGoodsModel *)goodsitemmodel
{
_goodsitemmodel = goodsitemmodel;
self.titletxt.text = [NSString stringWithFormat:@"%@",goodsitemmodel.title];
self.pracetxt.text = [NSString stringWithFormat:@"¥%@",goodsitemmodel.voucher_price];
self.msaletxt.text = [NSString stringWithFormat:@"⽉销%@",goodsitemmodel.m_sale];
[self.contentView mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.top.mas_equalTo(0);
make.width.mas_equalTo([UIScreen mainScreen].bounds.size.width);
make.bottom.mas_equalTo(self.pracetxt.mas_bottom).offset(10);
}];
[self.titletxt mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self).mas_offset(10);
make.left.equalTo(self).mas_offset(10);
make.right.equalTo(self).mas_offset(-10);
}];
[self.pracetxt mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.titletxt.mas_bottom).mas_offset(10);
make.bottom.equalTo(self).mas_offset(-10);
make.left.equalTo(self).mas_offset(10);
}];
[self.msaletxt mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.titletxt.mas_bottom).mas_offset(10);
make.bottom.equalTo(self).mas_offset(-10);
make.right.equalTo(self).mas_offset(-10);
}];
}
- (instancetype)initWithFrame:(CGRect)frame
{
if (self = [super initWithFrame:frame]) {
[self initWithUIFrame:frame];
}
return self;
}
- (void)initWithUIFrame:(CGRect)rect
{
self.contentView.backgroundColor = [UIColor whiteColor];
self.titletxt = [[UILabel alloc]init];
self.titletxt.font = [UIFont systemFontOfSize:14];
self.titletxt.textColor = [YColor YColorWithHexString:@"#333333"];
self.titletxt.numberOfLines = 0;
[self.contentView addSubview:self.titletxt];
self.pracetxt = [[UILabel alloc]init];
self.pracetxt.font = [UIFont systemFontOfSize:16];
self.pracetxt.textColor = [YColor YColorWithHexString:@"#F32F19"];
[self.contentView addSubview:self.pracetxt];
self.msaletxt = [[UILabel alloc]init];
self.msaletxt.font = [UIFont systemFontOfSize:12];
self.msaletxt.textColor = [YColor YColorWithHexString:@"#999999"];
[self.contentView addSubview:self.msaletxt];
}
#pragma mark — 实现⾃适应⽂字宽度的关键步骤:item的layoutAttributes
- (UICollectionViewLayoutAttributes*)preferredLayoutAttributesFittingAttributes:(UICollectionViewLayoutAttributes*)layoutAttributes { [self setNeedsLayout];
[self layoutIfNeeded];
CGSize size = [self.contentView systemLayoutSizeFittingSize: layoutAttributes.size];
CGRect cellFrame = layoutAttributes.frame;
cellFrame.size.height= size.height;
layoutAttributes.frame= cellFrame;
return layoutAttributes;
}
@end。