我正在使用表格视图的(heightForRowAtIndexPath)委托设置单元格的高度 代码是:
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return 100;
}
但是我在委托方法(cellForRowAtIndexPath)中检查单元格的大小,代码是:
- (UITableViewCell *)tableView:(UITableView *)aTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
// Dequeue or create a cell
UITableViewCellStyle style = UITableViewCellStyleDefault;
UITableViewCell *cell = [aTableView dequeueReusableCellWithIdentifier:@"BaseCell"];
if (!cell)
cell = [[UITableViewCell alloc] initWithStyle:style reuseIdentifier:@"BaseCell"] ;
cell.textLabel.text = [NSString stringWithFormat:@"Cell %d", numberOfItems - indexPath.row];
NSLog(@"%f",cell.frame.size.height);
return cell;
}
当我在控制台上打印值(细胞框架)细胞时,它给我44.00.为什么这种情况正在发生,即使我正在设置细胞的高度。请解释我以及如何处理细胞哦高度100。 。提前谢谢
实际上我想制作自定义类型表视图,它支持不同的视图方向,它是通用应用程序,所以最好每次调用单元格大小(iphone / ipad,diff orintation).... PLZ帮助我完成要求
答案 0 :(得分:1)
如果正确显示单元格,并且正确地表示您在tableView:heightForRowAtIndexPath:
中写入的高度为100像素,我很确定这是因为您要求单元格的高度为错误的地方:
单元格刚刚使用默认的init方法初始化,因此返回的高度是默认值,当控制台中的nslog提示为44像素时,渲染委托设置从方法返回的正确高度并设置所有内容正确。
几个月前我遇到过这个问题,由于某些原因我需要通过tableView:cellForRowAtIndexPath:
方法知道单元格的高度,我为此提出了一个解决方法:我已将所有rowHeights值存储在{{1}中因为它们是动态的,并且根据它们的内容逐行排列。
我出现了像
这样的东西CGFloat height = [[heightsData objectAtIndex:indexPath.section] objectAtIndex:indexPath.row];
答案 1 :(得分:0)
您是否为UITableViewDelegate设置了委托?
首先尝试在tableView:heightForRowAtIndexPath:
方法中添加任何日志,以查看您的代理是否已设置。
答案 2 :(得分:0)
朋友们开发了解释
NSLog(@"%f",[self tableView:tableView heightForRowAtIndexPath:indexPath]);