我在TableView中添加了一个标题视图,但我无法在IBAction
方法中访问该视图或标题视图的任何子视图。
我的代码如下:
-(UIView*)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
UIView *header_View=[[UIView alloc]initWithFrame:CGRectMake(0, 0, 160, 40)];
header_View.tag=section;
UIButton *btn=[UIButton buttonWithType:UIButtonTypeCustom];
btn.Frame=header_View.bounds;
[btn setTitle:[arr_headerTitles objectAtIndex:section] forState:UIControlStateNormal];
btn.titleLabel.font=FontChampagneLimousinesBold(18);
btn.tag=section;
[btn addTarget:self action:@selector(expandTableHeaderView:) forControlEvents:UIControlEventTouchUpInside];
UIImageView *img_arrow=[[UIImageView alloc]initWithFrame:CGRectMake(150, 05, 15, 15)];
img_arrow.image= [UIImage imageNamed:@"arrow_white_down.png"];
[header_View addSubview:btn];
[header_View addSubview:img_arrow];
return header_View;
}
-(void)expandTableHeaderView:(UIButton*)sender{
// UIView* _header_view =(UIView*)[_tbl viewWithTag:[sender tag]]; //Also tried
UIView *_header_view=[_tbl headerViewForSection:section]; //shows nil;
UIView *view = (UIView *)[_header_view viewWithTag:[sender tag]];
}
帮我解决这个问题 * 谢谢 *
答案 0 :(得分:0)
试试这个:
-(void)expandTableHeaderView:(UIButton*)sender{
UIView *_header_view = sender.superview;
// ...
}
答案 1 :(得分:0)
在创建header_View时尝试使用 UITableViewHeaderFooterView 而不是 UIView ,似乎正常工作
-(UIView*)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
UITableViewHeaderFooterView *header_View=[[UITableViewHeaderFooterView alloc]initWithFrame:CGRectMake(0, 0, 160, 40)];
header_View.tag=section;
UIButton *btn=[UIButton buttonWithType:UIButtonTypeCustom];
btn.Frame=header_View.bounds;
[btn setTitle:[arr_headerTitles objectAtIndex:section] forState:UIControlStateNormal];
btn.titleLabel.font=FontChampagneLimousinesBold(18);
btn.tag=section;
[btn addTarget:self action:@selector(expandTableHeaderView:) forControlEvents:UIControlEventTouchUpInside];
UIImageView *img_arrow=[[UIImageView alloc]initWithFrame:CGRectMake(150, 05, 15, 15)];
img_arrow.image= [UIImage imageNamed:@"arrow_white_down.png"];
[header_View addSubview:btn];
[header_View addSubview:img_arrow];
return header_View;
}
-(void)expandTableHeaderView:(UIButton*)sender{
// UIView* _header_view =(UIView*)[_tbl viewWithTag:[sender tag]]; //Also tried
UITableViewHeaderFooterView *_header_view=[_tbl headerViewForSection:sender.tag]; //shows nil;
UIView *view = (UIView *)[_header_view viewWithTag:[sender tag]];
}
答案 2 :(得分:0)
我认为您的标题高度未定义。 试试这个:
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
return 40.0;//the height of your header view
}
这可能有用。
请在您的IBAction方法中放置断点标记,看它是否有效。