-1

在表中,我使用表视图的(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)......请帮帮我完成要求

4

3 回答 3

1

如果单元格显示正确,并且正确地我的意思是高度为 100 像素,正如您tableView:heightForRowAtIndexPath:在已使用默认的 init 方法进行初始化,因此返回的高度是默认值,即 44 像素作为控制台中的 nslog 提示,在渲染委托时设置从您的方法返回的正确高度并且一切设置正确。

几个月前我遇到了这个问题,由于某些原因,我需要知道tableView:cellForRowAtIndexPath:方法中单元格的高度,我想出了一个解决方法:我已经将所有 rowHeights 值存储在 an 中NSArray,因为它们是动态的并且根据逐行不同他们的内容。

我出来了类似的东西

CGFloat height = [[heightsData objectAtIndex: indexPath.section] objectAtIndex: indexPath.row];

于 2013-09-04T13:02:51.353 回答
0

嗨,朋友们,开发者已经给出了解释

  NSLog(@"%f",[self tableView:tableView heightForRowAtIndexPath:indexPath]);
于 2013-09-04T13:27:00.047 回答
0

您是否为 UITableViewDelegate 设置了委托?

首先尝试将任何日志放入您的tableView:heightForRowAtIndexPath:方法中,以查看您的委托是否已设置。

于 2013-09-04T12:51:39.480 回答