Необходимо добавить несколько элементов пользовательского интерфейса в табличное представление UITable в iOS

У меня есть 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;

}

Когда я запускаю описанный выше метод, я вижу только мой ярлык, который говорит мне, что он заменяет кнопку. Есть ли способ для меня, чтобы оба элемента отображались в виде заголовка таблицы?

2 ответа

Решение

Создайте 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

Поскольку tableHeaderView является UIViewпопробуйте добавить это с addSubview:(UIView*) или создать UIView и добавьте это как ваш tableHeaderView,

Другие вопросы по тегам