我在这里遇到了一些麻烦。
我有一个tableview,有7个单元格,所有这些都是使用.xib文件制作的。其中一些包含标签,两个包含文本视图。
目前的情况是所有标签都正确显示。单元格的高度与.xib文件状态相同。
问题是,文本视图表现得很奇怪。它可能需要做一些我希望它们是动态的事实。有时,它在textview中给出了很长的故事。有时,只有一个字。因此,textview应该是动态的,单元格的高度也应该是动态的。
代码如下所示:
DetLocDescrCell *locDCel = (DetLocDescrCell *)[tabelView dequeueReusableCellWithIdentifier:nil];
if (locDCel == nil) {
[[NSBundle mainBundle] loadNibNamed:@"DetLocDescrCell" owner:self options:nil];
locDCel = detLocDescrCell;
}
[locDCel.locDescrLabel setText:[geselecteerdItem objectForKey:@"LocationDescription"]];
CGRect descrFrame;
descrFrame = locDCel.locDescrLabel.frame;
descrFrame.size.height = [locDCel.locDescrLabel contentSize].height;
locDCel.locDescrLabel.frame = descrFrame;
descrFrame.size.height = descrFrame.size.height + 10;
locDCel.frame = descrFrame;
[listCells addObject:locDCel];
此代码从类DetLocDescrCell
创建自定义单元格,加载数据,检查何时应调整高度,调整高度,然后将单元格添加到单元格列表中。在cellForRowAtIndexPath
和heightForRowAtIndexPath
中再次使用单元格列表。但是,高度不适应,文本视图没有得到正确的文本。有没有人有任何想法?
答案 0 :(得分:2)
我不确定这是否正确,但我是这样做的,
情况是自定义单元高度& heightforrowatindex单元格的高度应该相同,所以我试过
计算heightforrowatindexpath
中textview内容的高度if(indexpath.row == 3) // containing textview
{
CGSize textSize = [txtviewstring sizeWithFont:[UIFont systemFontOfSize:14] constrainedToSize:CGSizeMake(190, MAXFLOAT) lineBreakMode:UILineBreakModeWordWrap];
}
然后在你的cellforrowatindexpath中 - 计算相同的高度&将高度初始化为自定义单元格textview的高度cell.txtView.frame = CGRectMake (10,10,190,txtsize.height)
。
然后是你的高度和高度细胞高度相等
希望这个想法有所帮助!
答案 1 :(得分:0)
您可以使用委托方法:
-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
在屏幕上绘制单元格之前设置高度。
答案 2 :(得分:0)
我不确定你的问题。如果要增加单元格上textview的大小,则不可能,因为tableview的单元格已经创建并加载。它不会返回委托方法tableview:heightForRowAtIndexPath:indexPath
,因为当tableview加载时indexpath.row会增加
答案 3 :(得分:0)