Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 标题部分的视图框架大小始终相同_Iphone_Uitableview_Grouped Table - Fatal编程技术网

Iphone 标题部分的视图框架大小始终相同

Iphone 标题部分的视图框架大小始终相同,iphone,uitableview,grouped-table,Iphone,Uitableview,Grouped Table,} 这是我对ViewForHeaderSection的实现,但无论我制作什么帧,它总是显示相同的红色帧。你觉得我的代码有问题吗 图片: 更新: 嗯,现在我的红色方块更高了,但我的第一个表格标题现在不知何故隐藏起来了。第一个是通过titleForHeaderin部分实现的。我以为我只是实现了桌面的高度,但那不起作用 - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {

}

这是我对ViewForHeaderSection的实现,但无论我制作什么帧,它总是显示相同的红色帧。你觉得我的代码有问题吗

图片:

更新:

嗯,现在我的红色方块更高了,但我的第一个表格标题现在不知何故隐藏起来了。第一个是通过titleForHeaderin部分实现的。我以为我只是实现了桌面的高度,但那不起作用

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section 
{

 if(section != 0) {

  UIView *view = [[[UIView alloc] initWithFrame:CGRectMake(10, 10, 100, 30)] autorelease];
  view.backgroundColor = [UIColor redColor];

  return view;

 } else {
  return tableView.tableHeaderView;
 }

您需要实现这个委托方法

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
if(section == 1)
    return 30;
else
    return tableView.tableHeaderView.frame.size.height;
}
在您的情况下,只需
返回30


另外,您正在泄漏
视图

您的
[view release]
发生在
返回之后。但是只要
返回
发生,方法执行就会中止,并且永远不会调用您的
发布

所以你想要这个

    - (CGFloat)tableView:(UITableView *)tableView
heightForHeaderInSection:(NSInteger)section;

并摆脱下面的显式发布。

thx,你知道他们为什么不采取框架高度吗?我不明白为什么我必须用额外的委托方法设置高度……我不知道苹果为什么这样做。这有点傻。但我认为他们希望标题框架始终跨越表视图的整个宽度。因此,唯一需要处理的大小变量是height.thx,它是关于自动释放提示的。但现在我有另一个问题,也许你能再帮我一次?这是一个不同的问题,有点不清楚。发布一个新问题,只包含相关代码和显示问题的新图像。谢谢。他说:
UIView *view = [[[UIView alloc] initWithFrame:CGRectMake(10, 10, 100, 30)] autorelease];