Я хочу отобразить UIButton в нижнем колонтитуле UITableView (должен быть точно таким же для заголовка).
Этот код находится в viewDidLoad моего TableViewController:
UIButton *footerShareButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[footerShareButton setFrame:CGRectMake(10, 0, 70, 50)];
NSLog(@"%f", footerShareButton.frame.size.width);
[self.tableView setTableFooterView:footerShareButton];
NSLog(@"%f", footerShareButton.frame.size.width);
NSLog(@"%f", self.tableView.tableFooterView.frame.size.width);
Однакоэтот код не работает.Ширина кнопки слишком велика, она равна 320. (Высота, тем не менее, правильная.) Первый NSLog выводит 70, второй и третий вывод 320. Так что, похоже, метод setTableFooterView странным образом изменяет размер кнопки.
Я решил эту проблему, поместив UIButton в другой UIView перед установкой его в качестве нижнего колонтитула таблицы:
UIButton *footerShareButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[footerShareButton setFrame:CGRectMake(10, 0, 70, 50)];
UIView *aView = [[UIView alloc] initWithFrame:CGRectMake(10, 0, 70, 50)];
[aView addSubview:footerShareButton];
[self.tableView setTableFooterView:aView];
[aView release];
Это работает, кнопка имеет правильную ширину.
Однако я не наденуне понимаю, почему первый пример кода не работает.Кто-нибудь может объяснить?