ios自动布局中怎么动态改变tablieview的高度
2个回答
推荐于2016-01-03 · 知道合伙人生活技巧行家
关注
展开全部
在-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
类中获取cell的高度:
[objc] view plaincopy
CGSize boundSize = CGSizeMake(216, CGFLOAT_MAX);
cell.textLabel.text = @"12345678900123456789";
cell.userInteractionEnabled = NO;
cell.textLabel.numberOfLines = 0;
CGSize requiredSize = [cell.textLabel.text sizeWithFont:[UIFont systemFontOfSize:13] constrainedToSize:boundSize lineBreakMode:UILineBreakModeWordWrap];
CGRect rect = cell.frame;
rect.size.height = requiredSize.height+5;
cell.frame = rect;
这时候获取到了cell的高度,然后在
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
类中改变cell的高度:
[objc] view plaincopy UITableViewCell *cell = [self tableView:tableView cellForRowAtIndexPath:indexPath];
NSLog(@"cell height %f",cell.frame.size.height);
return cell.frame.size.height;
这样以来cell的高度就根据cell里label的内容自动改变。
类中获取cell的高度:
[objc] view plaincopy
CGSize boundSize = CGSizeMake(216, CGFLOAT_MAX);
cell.textLabel.text = @"12345678900123456789";
cell.userInteractionEnabled = NO;
cell.textLabel.numberOfLines = 0;
CGSize requiredSize = [cell.textLabel.text sizeWithFont:[UIFont systemFontOfSize:13] constrainedToSize:boundSize lineBreakMode:UILineBreakModeWordWrap];
CGRect rect = cell.frame;
rect.size.height = requiredSize.height+5;
cell.frame = rect;
这时候获取到了cell的高度,然后在
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
类中改变cell的高度:
[objc] view plaincopy UITableViewCell *cell = [self tableView:tableView cellForRowAtIndexPath:indexPath];
NSLog(@"cell height %f",cell.frame.size.height);
return cell.frame.size.height;
这样以来cell的高度就根据cell里label的内容自动改变。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询