0

我正在尝试实现 UITableView 的数据源方法:

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section

我已经在代码中完成了这个并且它有效。如果可能的话,我希望能够在 IB 中实现更复杂的布局。首先,我只添加了一个 UISegmentedControl 和一个 UIButton。我的数据源方法如下所示:

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {
    // Footer should just be on the last section in the grouped table.
    if (section == kNotesSection) {
        UINib *nib = [UINib nibWithNibName:@"DetailFooterView" bundle:nil];
        NSArray *views = [nib instantiateWithOwner:self options:nil];
        UIView *nibView = [views objectAtIndex:0];
        [nibView addGestureRecognizer:tapGesture];

        return nibView;
    }
    else {
        return nil;
    }
}

我可以在 TableView 的底部看到我的页脚视图。但是,没有发生用户交互。我点击按钮,我没有看到任何事情发生。所以我的第一个问题是,这是正确的方法吗?

第二个问题,我如何将目标/动作对与 .xib 关联,因为我没有像通常使用典型 UIViewController + .xib 模板那样连接到 .xib 的出口或动作。这是我第一次尝试以这种方式使用分离的 xib,但不确定细节。谢谢!

4

1 回答 1

0

做这个:

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {
  // Footer should just be on the last section in the grouped table.
  if (section == kNotesSection) {

   UIView *nibView = [[[NSBundle mainBundle] loadNibNamed:@"DetailFooterView" owner:self options:nil] objectAtIndex:0];
  [nibView setUserInteractionEnabled:YES];
  [nibView addGestureRecognizer:tapGesture];
   return nibView;

  else {
    return nil;
  }
}
于 2012-09-01T05:49:11.227 回答