gab*_*bac 18 iphone uitableview grouped-table
- (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;
}
Run Code Online (Sandbox Code Playgroud)
}
这是我对viewForHeaderInSection的实现,但无论我做什么帧,它总是向我显示相同的红框.你看到我的代码有什么问题吗?
图片:

更新:
嗯,现在我的红色区块更高,但我的第一个桌面现在以某种方式隐藏了.第一个是使用titleForHeaderInSection实现的.我以为我只是实现tableHeader高度的高度,但这不起作用
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
if(section == 1)
return 30;
else
return tableView.tableHeaderView.frame.size.height;
}
Run Code Online (Sandbox Code Playgroud)
Ale*_*yne 42
您需要实现此委托方法
- (CGFloat)tableView:(UITableView *)tableView
heightForHeaderInSection:(NSInteger)section;
Run Code Online (Sandbox Code Playgroud)
在你的情况下,你可以简单地return 30;.
而且,你漏了view!
你的[view release]事情发生在return.但是一旦return发生,方法执行就会中止,而且release永远不会被调用.
所以你想要这个
UIView *view = [[[UIView alloc] initWithFrame:CGRectMake(10, 10, 100, 30)] autorelease];
Run Code Online (Sandbox Code Playgroud)
并摆脱release下面的明确下来.
| 归档时间: |
|
| 查看次数: |
20600 次 |
| 最近记录: |