我有一个UITableView,在标题部分有多个headerSection可用。默认高度为 56 。现在,每当我点击特定部分的按钮时,我想将特定的headerSection高度更改为 40 。点击会触发方法(sectionOpened:)
,这有助于更改高度。但那时,另一个headerSection的高度应保持 56 。我怎么做?我到目前为止的尝试:
应
float headerSectionHeightDefault;
- (void)viewDidLoad
{
[super viewDidLoad];
headerSectionHeightDefault=56;
}
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
return headerSectionHeightDefault;
}
- (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
headerView = [[UIView alloc] initWithFrame: CGRectMake(0.0f, 0.0f, 640.0f, 0.0f)];
UIImageView *img = [[UIImageView alloc]initWithFrame:CGRectMake(15, 0, 300, 40)];
img.image = [UIImage imageNamed:@"menu_btn7.png"];
[headerView addSubview:img];
return headerView;
}
- (void) sectionOpened : (NSInteger) section
{
[menulistTable beginUpdates];
if(section==0)
{
headerSectionHeightDefault=40;
}
else
{
headerSectionHeightDefault=56;
}
[menulistTable endUpdates];
self.openSectionIndex = section;
}
答案 0 :(得分:4)
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
return headerSectionHeightDefault;
}
通过使用此代码,您将该部分的高度返回到40(即headerSectionHeightDefault),因此您需要为每个部分设置高度并单独返回。
答案 1 :(得分:1)
我在同一场景中工作并通过以下代码实现
dp
答案 2 :(得分:0)
而不是tableview更新,尝试在更改headerSectionHeightDefault的值后重新加载tableview。
- (void) sectionOpened : (NSInteger) section
{
if(section==0)
{
headerSectionHeightDefault=40;
}
else
{
headerSectionHeightDefault=56;
}
self.openSectionIndex = section;
[menulistTable reloadData];
}