1

セクションヘッダーに情報ライトボタンを配置したい

- (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");
}

ボタンが反応しません。理由はよくわかりません。おそらく簡単なことです。どんな助けでもいただければ幸いです。

4

2 に答える 2

2

まったく同じコードを (コピーして貼り付けて) UITableView クラスに試してみましたが、問題なく動作しました。ボタンをタップしてデバッグ出力を取得できました。したがって、上記のコードは問題なく、機能するはずです。あなたのクラスには何か他のものが壊れているに違いありません。

于 2012-05-22T21:08:09.690 に答える
0

大丈夫。同様の問題を抱えている可能性のある他の人のために共有する答えに出くわしました.

UIView と UITableView という 2 つのサブビューを持つ UIViewController があります。ストーリーボードでは、UITableView をストーリーボードのドキュメント アウトライン ビューの上位に配置しました。(左下隅のボタンで開くことができる絵コンテの左側ビュー パネル)。層の積み重ねと考えればUITableViewは下層だったということだと思います。

レイヤーの順序を変更し (UIView をドキュメント アウトライン ビューの上位に配置しました)、すべて正常に動作しています。

于 2012-05-22T21:25:44.973 に答える