Последняя ячейка iOS7 в секции UITableView заставляет разделитель полной ширины
Ниже UITableView
имеет пользовательский UITableViewCells
, и я могу настроить разделители в порядке, используя эту строку в пользовательском UITableViewCell
:
self.separatorInset = UIEdgeInsetsMake(0, kDefaultSeparatorLeftInset, 0, 0);
Однако ячейка в нижней части секции имеет разделитель по умолчанию, который переопределяет настраиваемый UIEdgeInsets
, который я установил.
Я хотел бы, чтобы все разделители были одинаковой ширины, есть ли способ сделать это без перерисовывания разделителей вручную?
![UITableView with wide section separator in iOS7]()
Ответы
Ответ 1
После некоторых экспериментов я нашел единственное реальное решение - установить UITableViewStyle
на UITableViewStylePlain
и установить пустые нижние колонтитулы, используя:
-(UIView*)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{
return [[UIView alloc] initWithFrame:CGRectZero];
}
-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
{
return 0.01f;
}
Это не будет удовлетворительным решением для некоторых, потому что UITableViewStylePlain
не предоставляет всех функций UITableViewStyleGrouped
, но дает мне раздел без разделителя полной ширины.
![enter image description here]()
Ответ 2
После некоторых экспериментов я нашел решение! tableFooterView может быть закрыт следующим разделителем:
UIView *v = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 1)];
UIView *v2 = [[UIView alloc] initWithFrame:CGRectMake(0, -1, 320, 2)];
v2.backgroundColor = [UIColor whiteColor];
v.backgroundColor = [UIColor whiteColor];
[v addSubview:v2];
self.tableView.tableFooterView = v;
Ответ 3
Используйте свойство separatorInset
непосредственно в tableView, а не в отдельных ячейках. В tableView separatorInset задается вставка по умолчанию, которая может быть переопределена ячейками, а также вставка для "дополнительных" ячеек внизу.
Ответ 4
Дайте таблице пустой нижний колонтитул:
self.tableFooterView = [[UIView alloc] init]