У меня есть UITableView, и я хочу добавить кнопку прямо под стол. Таблица больше экрана, поэтому, чтобы перейти к кнопке, мне нужно прокрутить ее вниз. Проблема в том, что экран будет прокручиваться чуть выше, где находится кнопка. Поэтому я могу слегка перетащить экран, и кнопка видна, но когда я отпущу, экран возвращается, и я не могу добраться до кнопки.Добавление UIButton в UITableView, но не может прокручиваться до кнопки
Кнопка устанавливается следующим образом
for(int i = 0; i < [buttonArray count]; i++)
{
UIButton *but = [buttonArray objectAtIndex:i];
float xPosition = but.frame.origin.x;
float xGap = (self.view.frame.size.width - (but.frame.size.width)*2)/3;
if ((i % 2 == 0) && (i < [buttonArray count] - 1))
{
xPosition = xGap;
}
else if ((i % 2 == 1) && (i < [buttonArray count] - 1))
{
xPosition = (xGap * 2) + but.frame.size.width;
}
else
{
xPosition = (self.view.frame.size.width - but.frame.size.width)/2;
}
//Add space between row of buttons
if(i > 0)
{
if(i % 2 == 0)
{
yPosition+=but.frame.size.height;
CGRect screenRect = [[tableView superview] bounds];
//Add extra space between row of buttons
float fGap = (screenRect.size.height/100.0) * 4.5;
yPosition+=fGap;
}
}
CGRect rect = CGRectMake(xPosition, yPosition, but.frame.size.width, but.frame.size.height);
but.frame = rect;
[but addTarget:self action:@selector(genericMethod:) forControlEvents:UIControlEventTouchUpInside];
CGRect screenRect = [self.view bounds];
CGFloat fHeight = screenRect.size.height;
float fMargin = (fHeight/100.0) * 0.8;
but.titleEdgeInsets = UIEdgeInsetsMake(0, 0, fMargin, 0);
[tableView addSubview:but];
}
}
так что я иду через массив кнопок (только одной кнопки в массиве в моем текущем случае) и установить рамки и поместите их в столбцы и добавить это как подпрограмма для tableView. Вещи, которые я пробовал:
- Увеличить размер нижнего колонтитула стола. Это просто заставляет зазор между столом и кнопкой увеличиваться, и я до сих пор не могу прокрутить вниз до кнопки.
- Добавить кнопку в нижний колонтитул. Это сработало. Я мог попасть к кнопке, но кнопка всегда была на экране, а не просто статична под столом.
- Добавьте кнопку в отдельное представление под таблицей и добавьте этот вид в viewController.view. Это не сработало, и кнопка не отображалась.
- Установите таблицуView.tableFooterView равным кнопке. Это также сработало, и я мог дойти до кнопки, но это не сработает, если в массиве выше более одной кнопки.
Вы должны добавить кнопку табличного представления 'tableFooterView' вместо этого. – JoeFryer
Я попытался сделать [tableView.tableFooterView addSubview: но], но кнопка не появляется на экране. – user1776555
Возможно, вы должны добавить свой собственный 'UIView' в качестве фактического' tableFooterView', а затем добавить свою кнопку в качестве подпрограммы. – JoeFryer