Я хочу отобразить UIButton в нижнем колонтитуле UITableView (он должен быть точно таким же для заголовка).UITableView tableFooterView weird resizing
Этот код находится в 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];
Это работает, кнопка имеет правильную ширину.
Однако я не понимаю, почему первый образец кода не работает. Может ли кто-нибудь объяснить?
Да, это все, что делает размер вида, который я создал, а я просто не заметил. Спасибо. Я думаю, что в документах следует упомянуть, что настройка свойства tableFooterView изменяет размер представления, что могло бы сэкономить мне некоторое время. – avf