我正在使用XIB的tableview单元创建一个tableview。 当我将tableview单元格与Tableview集成并运行它时,它显示不完美,它显示我覆盖。
static NSString *cellIdentifier =@"DiscussionTableViewCell";
DiscussionTableViewCell *cell = (DiscussionTableViewCell *)[tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (cell == nil) {
NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"DiscussionTableViewCell" owner:self options:nil];
cell = [topLevelObjects objectAtIndex:0];
cell.selectionStyle=UITableViewCellSelectionStyleNone;
// [cell.btnConnect addTarget:self action:@selector(btnUserConnectClick:) forControlEvents:UIControlEventTouchUpInside];
// [cell.btnNotnow addTarget:self action:@selector(btnNotNowClick:) forControlEvents:UIControlEventTouchUpInside];
self.cellHeight += cell.frame.size.height;
NSLog(@"Cell height is %f",self.cellHeight);
答案 0 :(得分:4)
按照以下步骤操作:
numberOfLines
属性更改为零答案 1 :(得分:0)
你的问题是你的细胞高度和tableview行高不同,你可以通过两种方式解决这个问题
将AutoLayout实施到自定义单元格, 通过这种方式,您的单元格将根据行高增长/缩小。
第二种方法是使行高与单元格高度相同
使用-(CGFloat)tableView:(UITableView *)tableView
heightForRowAtIndexPath:(NSIndexPath *)indexPath
委托方法
只需在上面的委托方法中返回您的单元格高度即可解决您的问题。
答案 2 :(得分:0)
如果您已将故事板中的UILabel添加到UITableviewCell,请确保您已根据以下操作进行了所有更改:
在Storyboard中执行此更改: 确保已将UILabel的顶部,底部,前导和尾部约束赋予UITableViewCell contentView。
答案 3 :(得分:0)
我用来动态计算单元格内容高度的代码是:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (_arrMainTable.count && (indexPath.row < _arrMainTable.count))
{
NSDictionary *dict = [_arrMainTable objectAtIndex:indexPath.row];
return [self expectedLabelHeight:dict];
}
return 0;
}
- (CGFloat)expectedLabelHeight:(NSDictionary *)dict
{
CGSize boundingSize = CGSizeMake(CGRectGetWidth(_faqTableView.bounds)-20.0, CGFLOAT_MAX);
UIFont *font = [UIFont fontWithName:@"Roboto-Regular" size:17];
CGRect qstnRect = [dict[@"question"] boundingRectWithSize:boundingSize options:NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading attributes: @{NSFontAttributeName:font} context:nil];
font = [UIFont fontWithName:@"Roboto-Light" size:14];
CGRect ansRect = [dict[@"answer"] boundingRectWithSize:boundingSize options:NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading attributes: @{NSFontAttributeName:font} context:nil];
return (qstnRect.size.height+ansRect.size.height+30); // 30 is the height of another label whose height is fixed to 30pts.
}
答案 4 :(得分:-1)
有很多方法可以在具有动态高度的桌面视图中设计单元格布局
这里我正在分享一些与动态高度相关的链接,并且单元格自动布局将有助于解决您的问题。
Raywenderlich: https://www.raywenderlich.com/129059/self-sizing-table-view-cells
AppCoda: http://www.appcoda.com/self-sizing-cells/
回答SO:
希望这可以帮助您解决问题。