tableview 高度适配内容(高度随着cell行数变化而动态变化)及(监听contentsize变化)
来源:互联网 发布:淘宝被扣48分怎么办 编辑:程序博客网 时间:2024/05/18 14:45
//评论布局
-(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(self.szdz_view.mas_bottom).mas_offset(TEXT_EDGE_DISTANCE);
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 =NO;
self.pinTab.estimatedRowHeight =100;
self.pinTab.rowHeight =UITableViewAutomaticDimension;
[self.pinTabregisterClass:[UITableViewCellclass] forCellReuseIdentifier:@"cell"];
self.pinTab.separatorStyle =UITableViewCellSeparatorStyleNone;
//添加标题
self.pinTab.tableHeaderView = [[UIViewalloc]init];
[self.pinTabregisterClass:[PingLunXQTabCellclass] forCellReuseIdentifier:@"PingLunXQTabCell"];
[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{
return 2;
}
-(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 = [tableViewdequeueReusableCellWithIdentifier:@"PingLunXQTabCell"];
cell.selectionStyle =UITableViewCellSelectionStyleNone;
cell.vc = self;
cell.arrImgv = [@[@"2"]mutableCopy];//控制图片显隐性
return cell;
}else{
ShopXQXiangSiTabCell*cell = [tableViewdequeueReusableCellWithIdentifier:@"ShopXQXiangSiTabCell"];
cell.selectionStyle =UITableViewCellSelectionStyleNone;
cell.vc = self;
return cell;
}
}
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
[tableView deselectRowAtIndexPath:indexPathanimated:NO];
}
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
returnUITableViewAutomaticDimension;
}
//头高度
-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
return 60.f;
}
//尾高度
-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{
return 30.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 = [[UILabelalloc]init];
[hv addSubview:self.pinLun_numL];
self.pinLun_numL.font =MIDDLE_LIT_FONT;
self.pinLun_numL.textColor =TEXT_HEX_MID_GRAY;
[self.pinLun_numLmas_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 = [NSStringstringWithFormat:@"评论(%ld)",12];
UIImageView *pl_imgv = [[UIImageViewalloc]init];
pl_imgv.userInteractionEnabled =YES;
[hv addSubview:pl_imgv];
pl_imgv.image = [UIImageimageNamed:@"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 = [[UILabelalloc]init];
[hv addSubview:self.pingLun_fenL];
self.pingLun_fenL.font =MIDDLE_LIT_FONT;
[self.pingLun_fenLmas_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 = [[UITapGestureRecognizeralloc]initWithTarget:selfaction:@selector(clickedPingLunXiangQing:)];
[hv addGestureRecognizer:tap];
} else {
UILabel *lab_xs = [[UILabelalloc]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 = [[UIImageViewalloc]init];
xs_imgv.userInteractionEnabled =YES;
[hv addSubview:xs_imgv];
xs_imgv.image = [UIImageimageNamed:@"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 = [[UILabelalloc]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 = [[UIImageViewalloc]init];
self.shanglaImgv.userInteractionEnabled =YES;
[view addSubview:self.shanglaImgv];
self.shanglaImgv.image = [UIImageimageNamed:@"s_d_xiangshang-biao"];
[self.shanglaImgvmas_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;
}
- tableview 高度适配内容(高度随着cell行数变化而动态变化)及(监听contentsize变化)
- 动态获取div的高度 随着窗口变化而变化 window.resize
- 内容随着显示器的变化而变化
- UItableView Cell 高度自适应--随着多个label内容变化自适应
- 计算cell的高度,让cell的高度随填充的文本字数变化而变化
- uitableviewcell内嵌入uicollectionview后uitableviewcell高度随 uicollection的contentsize的变化而变化
- div高度随窗口变化而变化
- C# RichTextBox高度随内容动态变化
- cell高度随文字变化
- 点击cell的高度变化
- IOS学习-随着键盘高度变化自动调节界面内容
- iOS UITextField随着键盘的高度变化动态调整位置
- iOS UILabel的高度随着字数的多少变化而变化
- UIKeyboardWillShowNotification 监听键盘高度变化
- UIKeyboardWillShowNotification 监听键盘高度变化
- 随着变化而变化(Observer)
- [CSS]使用绝对定位属性来实现CSS内部子容器高度随着外部父容器高度变化而变化
- 让div的大小随着内容的变化而变化
- 普元EOS Platform产品支持环境
- UCI机器学习仓库
- 普元BPS产品支持环境
- 2017年10月19日作业
- 普元EOS/BPS为什么没有安装成功 ?
- tableview 高度适配内容(高度随着cell行数变化而动态变化)及(监听contentsize变化)
- 【Git之窗】(十三)远程分支之间如何合并
- GIT指南 网页版教程
- 函数的声明及调用
- GitChat活动:MyBatis 通用 Mapper 实现原理及相关内容
- 本周算法思路1
- 由volatile引发的思考
- android面试-java虚拟机运行时数据区(迅雷、久邦涉及到)
- Struts 2 访问session request application 对象的方式