我想在章节标题中添加一个信息灯按钮
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
return 20;
}
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
UIView *sectionHeaderView = [[UIView alloc] initWithFrame:CGRectMake(10, 10, 100, 20)];
UIButton* infoButton = [UIButton buttonWithType:UIButtonTypeInfoLight];
infoButton.frame = CGRectMake(0, 0, 18, 18); // x,y,width,height
infoButton.enabled = YES;
[infoButton addTarget:self action:@selector(infoButtonClicked:) forControlEvents:UIControlEventTouchUpInside];
//Add the subview to the UIView
[sectionHeaderView addSubview:infoButton];
return sectionHeaderView;
}
- (void)infoButtonClicked:(id)sender {
NSLog(@"infoButtonClicked");
}
按钮没有响应。我不太清楚为什么。这可能很简单。任何帮助将不胜感激。
答案 0 :(得分:2)
我尝试了完全相同的代码(复制并粘贴)到一个可用的UITableView类中,它运行得很好。我能够点击按钮并获得调试输出。所以你的代码如上所示很好,应该可行。你班上肯定会有别的东西坏掉。
答案 1 :(得分:0)
好的。我偶然发现了我将与其他可能有类似问题的人分享的答案。
我有一个带有两个子视图的UIViewController - 一个UIView和UITableView。在故事板中,我在故事板的文档大纲视图中将UITableView放在更高的位置。 (可以使用左下角按钮打开的故事板左侧视图面板)。我认为这意味着UITableView是一个较低的层,如果你把它想象成一堆层。
我切换了图层顺序(在文档大纲视图中将UIView设置得更高),一切正常。