我UITableView
的样式很简单,我想更改HeaderInSection的高度,但它仍然是默认高度22.0。
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
if (tableView.tag == tableOrdersTag)
{
return 35;
}
else
{
return 0;
}
}
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
if (tableView.tag == tableOrdersTag)
{
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.tableView.frameWidth, 35)];
view.backgroundColor = COMMON_BACKGROUND_COLOR;
DDLogVerbose(@"=========tableView %f", tableView.sectionHeaderHeight);
return view;
}
else
{
return nil;
}
}
答案 0 :(得分:1)
您的NSLog的地方
return view;
可能会导致问题。它应该在返回方法之前:
tableView:viewForHeaderInSection
将数字35改为100,你会发现它工作正常。
因为
的方法tableView:heightForHeaderInSection.
落后于
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
NSLog(@"heightForHeaderInSection");
return 100;
}
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.tableView.frame.size.width, 100)];
view.backgroundColor = [UIColor redColor];
NSLog(@"=========tableView %f", tableView.sectionHeaderHeight);
return view;
}
当我创建一个没有xib或故事板的TaleViewController时:
2015-05-21 18:25:30.525 UITableViewHeaderDemo[24727:2350493] heightForHeaderInSection
2015-05-21 18:25:30.526 UITableViewHeaderDemo[24727:2350493] heightForHeaderInSection
2015-05-21 18:25:30.526 UITableViewHeaderDemo[24727:2350493] heightForHeaderInSection
2015-05-21 18:25:30.526 UITableViewHeaderDemo[24727:2350493] heightForHeaderInSection
2015-05-21 18:25:30.535 UITableViewHeaderDemo[24727:2350493] heightForHeaderInSection
2015-05-21 18:25:30.535 UITableViewHeaderDemo[24727:2350493] heightForHeaderInSection
2015-05-21 18:25:30.549 UITableViewHeaderDemo[24727:2350493] heightForHeaderInSection
2015-05-21 18:25:30.549 UITableViewHeaderDemo[24727:2350493] heightForHeaderInSection
2015-05-21 18:25:30.550 UITableViewHeaderDemo[24727:2350493] =========tableView -1.000000
它将打印如下:
%// Making dummy data:
n = 10;
points = rand(n,2);
points(:,3) = randi(3,n,1);
%//Setting a colormap: note that you should not use a cell array for this!
c=[1 0 0; 0 1 0; 0 0 1]
colormap(c)
%//plot
scatter(points(:,1), points(:,2), [], points(:,3))
但是
答案 1 :(得分:1)
做这件事: -
试试这个。希望这能解决你的问题。
答案 2 :(得分:0)
首先从Xib更改部分高度,然后
在else中返回以下行而不是nil然后检查
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.tableView.frameWidth, 0)];