2012-06-25 3 views
0

Я пытаюсь сократить высоту моего UITableView и поставить кнопку внизу. Я попытался с помощью этого кода:Изменить размер UITableView и поместить его под ним

// set the frame size 
CGRect frame = self.view.frame; 
frame.size.height = 355; 
self.view.frame = frame; 

//set up the button 
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
[button addTarget:self 
      action:@selector(buttonPress:) 
forControlEvents:UIControlEventTouchUpInside]; 
[button setTitle:@"Add to Current Workout" forState:UIControlStateNormal]; 
button.frame = CGRectMake(20, 365, 280, 40); 
[self.view addSubview:button]; 

в методе viewDidAppear, но все, что происходит, вид становится короче, и когда я прокручиваю вниз кнопка покрывает одну из моих клеток (он также прокручивается с Tableview). Как изменить высоту таблицы и нажать кнопку под представлением?

ответ

2

self.view возвращает «вид, в котором первоначально произошло касание», согласно документам. Чтобы изменить tableView, вы захотите использовать self.tableView, который возвращает «tableView, управляемый объектом контроллера», если вы делаете это в TableViewController. Изменение первой и третья строки:

CGRect frame = self.tableView.frame; 
frame.size.height = 355; 
self.tableView.frame = frame; 

Чтобы получить кнопку, чтобы появиться под Tableview, согласно this question вы можете установить его в качестве tableFooterView в Tableview в. Так измените последнюю строку на:

self.tableView.tableFooterView = button; 
+0

Я полностью забыл об этом. Я внес изменения, но проблема не устранена. Таблица изменяет высоту, но кнопка не находится под таблицей. Он находится в верхней части таблицы, но отображается только при прокрутке вниз. Есть идеи? –

+0

изменили ли вы последнюю строку с 'self.view' на' self.tableView'? Вы по-прежнему хотите добавить кнопку в 'self.view'. – dmur

+0

нет, кнопка все еще добавляется в self.view –

0

Вы должны уменьшить размер представления таблицы, а не весь ваш вид (как вы сейчас делаете).

Должно быть self.tableView.frame = frame (где tableview - это имя вашего UITableView).

Смежные вопросы