3

tableViewを持つUITableViewControllerがあります。このtableViewに、ラベルとボタンの両方を追加したいのですが、残念ながら、どちらか一方しか追加できません。

これが私が使っている私のコードです:

- (void) viewDidLoad {

    [super viewDidLoad];

    selectAllButton = [UIButton buttonWithType:UIButtonTypeCustom];
    [selectAllButton setFrame:CGRectMake(280, 0, 25, 25)];
    [selectAllButton setImage:[UIImage imageNamed:@"CheckBox1.png"] forState:UIControlStateSelected];
    [selectAllButton setImage:[UIImage imageNamed:@"CheckBox2.png"] forState:UIControlStateNormal];
    [selectAllButton setUserInteractionEnabled:YES];
    [selectAllButton addTarget:self action:@selector(buttonTouched:) forControlEvents:UIControlEventTouchUpInside];

    selectAllLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 300, 40)];
    [selectAllLabel setTextColor:[UIColor blackColor]];
    [selectAllLabel setBackgroundColor:[UIColor clearColor]];
    [selectAllLabel setText:@"Select All"];

    self.tableView.tableHeaderView = selectAllButton;
    self.tableView.tableHeaderView = selectAllLabel;

}

上記のメソッドを実行すると、ボタンを置き換えていることを示すラベルしか表示されません。両方の要素をテーブルヘッダービューに表示する方法はありますか?

4

2 に答える 2

3

UIViewを作成し、ボタンとラベルをサブビューとして追加します。そのビューをself.tableview.tableHeaderViewにします。

...your code
UIView *headerView = [UIView alloc] initWithFrame:CGRectMake(0, 0, self.tableView.frame.size.width, selectAllButton.frame.size.height + selectAllLabel.frame.size.height)];

[headerView addSubview:selectAllButton];
[headerView selectAllLabel];

self.tableView.tableHeaderView = headerView;

ボタンとラベルを初期化するときは、UIViewに基づいているため、必ずフレームを変更してください。

于 2013-01-08T17:14:57.870 に答える
1

tableHeaderViewはであるため、UIViewを追加するaddSubview:(UIView*)か、を作成して、UIViewそれをとして追加してみてくださいtableHeaderView

于 2013-01-08T17:18:39.090 に答える