tableview 高度適配內容(高度隨著cell行數變化而動態變化)及(監聽contentsize變化)
//評論佈局
-(void)drawPingLunViewWithArr:(NSMutableArray *)arrData{
self.pinTab = [[UITableViewalloc]initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_WIDTH) style:UITableViewStylePlain];
[self.contentViewaddSubview:self.pinTab];
[self.pinTabmas_remakeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo
make.left.right.mas_equalTo(self.contentView);
make.height.mas_equalTo(200*arrData.count+60+40+260+40);
}];
[self.pinTablayoutIfNeeded];
self.pinTab.delegate = self;
self.pinTab.dataSource = self;
self.pinTab.scrollEnabled = YES;
self.pinTab.bounces
self.pinTab.estimatedRowHeight = 100;
self.pinTab.rowHeight = UITableViewAutomaticDimension;
[self.pinTabregisterClass:[UITableViewCellclass] forCellReuseIdentifier:@"cell"];
self.pinTab.separatorStyle = UITableViewCellSeparatorStyleNone;
//新增標題
self.pinTab.tableHeaderView = [[UIViewalloc]init];
[
[self.pinTabregisterClass:[ShopXQXiangSiTabCellclass] forCellReuseIdentifier:@"ShopXQXiangSiTabCell"];
//新增觀察控制元件的contentSize變化
[self.pinTabaddObserver:selfforKeyPath:@"contentSize"options:0context:NULL];
}
//監聽contentSize變化改變約束
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
CGRect frame = self.pinTab.frame;
frame.size = self.pinTab.contentSize;
[self.pinTabmas_remakeConstraints:^(MASConstraintMaker *make) {
make.top.mas_equalTo(self.szdz_view.mas_bottom).mas_offset(TEXT_EDGE_DISTANCE);
make.left.right.mas_equalTo(self.contentView);
make.height.mas_equalTo(frame.size.height);
}];
}
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
return2;
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
if (section==0) {
return 2;
} else {
return 1;
}
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
if (indexPath.section==0) {
PingLunXQTabCell *cell = [tableView dequeueReusableCellWithIdentifier:@"PingLunXQTabCell"];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
cell.vc = self;
cell.arrImgv = [@[@"2"] mutableCopy];//控制圖片顯隱性
return cell;
}else{
ShopXQXiangSiTabCell*cell = [tableView dequeueReusableCellWithIdentifier:@"ShopXQXiangSiTabCell"];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
cell.vc = self;
return cell;
}
}
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
[tableView deselectRowAtIndexPath:indexPath animated:NO];
}
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
returnUITableViewAutomaticDimension;
}
//頭高度
-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
return60.f;
}
//尾高度
-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{
return30.f;
}
//表頭
-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
UIView *hv = [[UIViewalloc]initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, 60)];
hv.backgroundColor = [UIColorwhiteColor];
if (section==0) {
self.pinLun_numL = [[UILabel alloc]init];
[hv addSubview:self.pinLun_numL];
self.pinLun_numL.font = MIDDLE_LIT_FONT;
self.pinLun_numL.textColor = TEXT_HEX_MID_GRAY;
[self.pinLun_numL mas_makeConstraints:^(MASConstraintMaker *make) {
make.left.mas_equalTo(hv.mas_left).mas_offset(TEXT_EDGE_DISTANCE);
make.centerY.mas_equalTo(hv.mas_centerY);
}];
self.pinLun_numL.text = [NSString stringWithFormat:@"評論(%ld)",12];
UIImageView *pl_imgv = [[UIImageView alloc]init];
pl_imgv.userInteractionEnabled = YES;
[hv addSubview:pl_imgv];
pl_imgv.image = [UIImage imageNamed:@"s_d_xiangyoujiantou"];
[pl_imgv mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.mas_equalTo(hv).mas_offset(-TEXT_EDGE_DISTANCE);
make.centerY.mas_equalTo(hv.mas_centerY);
make.size.mas_equalTo(CGSizeMake(6, 10));
}];
self.pingLun_fenL = [[UILabel alloc]init];
[hv addSubview:self.pingLun_fenL];
self.pingLun_fenL.font = MIDDLE_LIT_FONT;
[self.pingLun_fenL mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.mas_equalTo(pl_imgv.mas_right).mas_offset(-TEXT_LINE_DISTANCE);
make.centerY.mas_equalTo(hv.mas_centerY);
}];
self.pingLun_fenL.attributedText = [selfgetAttriStringWithPingLunString:@"99%"];
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(clickedPingLunXiangQing:)];
[hv addGestureRecognizer:tap];
} else {
UILabel *lab_xs = [[UILabel alloc]init];
[hv addSubview:lab_xs];
lab_xs.font = MIDDLE_LIT_FONT;
lab_xs.textColor = TEXT_HEX_MID_GRAY;
lab_xs.text = @"相似商品";
[lab_xs mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.mas_equalTo(hv.mas_centerX).mas_offset(TEXT_LINE_DISTANCE+24/2);
make.bottom.mas_equalTo(hv.mas_bottom);
}];
UIImageView *xs_imgv = [[UIImageView alloc]init];
xs_imgv.userInteractionEnabled = YES;
[hv addSubview:xs_imgv];
xs_imgv.image = [UIImage imageNamed:@"s_d_xiangsi-biao"];
[xs_imgv mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.mas_equalTo(lab_xs.mas_left).mas_offset(-TEXT_LINE_DISTANCE);
make.centerY.mas_equalTo(lab_xs.mas_centerY);
make.size.mas_equalTo(CGSizeMake(24, 24));
}];
}
return hv;
}
//區尾
-(UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section{
UIView*view = [[UIViewalloc]initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH,30)];
view.backgroundColor = [UIColorwhiteColor];
if (section==0) {
UIButton *btn = [UIButtonbuttonWithType:UIButtonTypeCustom];
[view addSubview:btn];
btn.titleLabel.font = LITTLE_L_FONT;
[btn setTitleColor:TEXT_HEX_LIGHT_L_GRAYforState:UIControlStateNormal];
btn.layer.cornerRadius = 20/2;
btn.layer.borderColor = TEXT_HEX_LIGHT_L_GRAY.CGColor;
btn.layer.borderWidth = 1;
[btn mas_makeConstraints:^(MASConstraintMaker *make) {
make.center.mas_equalTo(view);
make.size.mas_equalTo(CGSizeMake(106, 20));
}];
[btn setTitle:@"檢視全部評論" forState:UIControlStateNormal];
[btn addTarget:selfaction:@selector(clickedChaKanPingLun:) forControlEvents:UIControlEventTouchUpInside];
} else {
UILabel *lab_xs = [[UILabel alloc]init];
[view addSubview:lab_xs];
lab_xs.font = MIDDLE_LIT_FONT;
lab_xs.textColor = TEXT_HEX_LIGHT_L_GRAY;
lab_xs.text = @"上拉檢視商品詳情";
[lab_xs mas_makeConstraints:^(MASConstraintMaker *make) {
make.centerX.mas_equalTo(view.mas_centerX).mas_offset(TEXT_LINE_DISTANCE+16/2);
make.centerY.mas_equalTo(view.mas_centerY);
}];
self.shanglaImgv = [[UIImageView alloc]init];
self.shanglaImgv.userInteractionEnabled = YES;
[view addSubview:self.shanglaImgv];
self.shanglaImgv.image = [UIImageimageNamed:@"s_d_xiangshang-biao"];
[self.shanglaImgv mas_makeConstraints:^(MASConstraintMaker *make) {
make.right.mas_equalTo(lab_xs.mas_left).mas_offset(-TEXT_LINE_DISTANCE);
make.centerY.mas_equalTo(view.mas_centerY);
make.size.mas_equalTo(CGSizeMake(24, 24));
}];
}
return view;
}