Есть ли способ уменьшить пространство между двумя разделами UITableView? Между каждым разделом, который у меня есть, примерно 15 пикселей. Я уже пытался вернуть 0 для -tableView:heightForFooterInSection:
и, -tableView:heightForHeaderInSection:
но это ничего не меняет.
Какие-либо предложения?
iphone
ios
uitableview
Flohei
источник
источник
0.0
. Но он показывал серую область с высотой (по умолчанию) 30 точек. Использование0.0
не допускается. вы должны использовать любое значение выше,0.0
например0.0001
.0.0
, не работает. У меня есть более подробный ответ на ту же проблему здесь: stackoverflow.com/a/22185534/2789144Ответы:
Это было немного сложно, но попробуйте этот код:
- (CGFloat)tableView:(UITableView*)tableView heightForHeaderInSection:(NSInteger)section { if (section == 0) { return 6.0; } return 1.0; } - (CGFloat)tableView:(UITableView*)tableView heightForFooterInSection:(NSInteger)section { return 5.0; } - (UIView*)tableView:(UITableView*)tableView viewForHeaderInSection:(NSInteger)section { return [[UIView alloc] initWithFrame:CGRectZero]; } - (UIView*)tableView:(UITableView*)tableView viewForFooterInSection:(NSInteger)section { return [[UIView alloc] initWithFrame:CGRectZero]; }
Соответственно измените значения. Чтобы убрать пробел, думаю 0.0 не примут. Наименьшее разумное значение - 1.0.
источник
0
в качестве высоты - вы получите высоту по умолчанию.CGFloat.leastNonzeroMagnitude
Для всех, кто хочет уменьшить расстояние до 0, вы должны использовать:
tableView.sectionHeaderHeight = 0.0; tableView.sectionFooterHeight = 0.0;
Поскольку обслуживание UITableViewDelegate дает эффект только начиная с числа с плавающей запятой больше нуля.
-(CGFloat)tableView:(UITableView*)tableView heightForHeaderInSection:(NSInteger)section { return 1.0; } -(CGFloat)tableView:(UITableView*)tableView heightForFooterInSection:(NSInteger)section { return 1.0; } -(UIView*)tableView:(UITableView*)tableView viewForHeaderInSection:(NSInteger)section { return [[[UIView alloc] initWithFrame:CGRectZero] autorelease]; } -(UIView*)tableView:(UITableView*)tableView viewForFooterInSection:(NSInteger)section { return [[[UIView alloc] initWithFrame:CGRectZero] autorelease]; }
(с использованием iOS 4.1 с XCode 4.0.2)
источник
return .leastNormalMagnitude
Фактически вы можете установить высоту нижнего колонтитула / заголовка / ячейки в Интерфейсном Разработчике на вкладке размера. По умолчанию для верхнего / нижнего колонтитула установлено значение 10.0.
источник
Вам необходимо уменьшить высоту верхнего / нижнего колонтитула раздела. Тогда пространство между секциями сократится.
попробуйте этот код
Меня устраивает :-)
tableView.sectionHeaderHeight = 2.0; tableView.sectionFooterHeight = 2.0;
источник
Вы также можете уменьшить высоту нижнего и верхнего колонтитула раздела с помощью раскадровки. В виде таблицы -> инспектор размеров. Перейти к высоте раздела.
По умолчанию установлено значение 22 для простой таблицы стилей и 10 для сгруппированной таблицы стилей. Вы можете настроить значения, увеличивая / уменьшая значения для верхнего и нижнего колонтитула отдельно.
источник
Для меня проблема заключалась в том, что я использовал стиль представления сгруппированной таблицы (
UITableViewStyleGrouped
). Когда я изменил его на простой стиль (UITableViewStylePlain
), мойtableView:heightForHeaderInSection:
метод был единственным, что определяло размер каждого заголовка раздела.источник
Используйте это, возможно, 0 не будет работать должным образом
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { return .leastNormalMagnitude } func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat { return .leastNormalMagnitude }
источник
ОБНОВЛЕНИЕ ДЛЯ iOS7: в связи с автоматическим обновлением ARC, здесь отредактирован код @Martin Stolz.
-(CGFloat)tableView:(UITableView*)tableView heightForHeaderInSection:(NSInteger)section { if(section == 0) return 6; return 1.0; } -(CGFloat)tableView:(UITableView*)tableView heightForFooterInSection:(NSInteger)section { return 5.0; } -(UIView*)tableView:(UITableView*)tableView viewForHeaderInSection:(NSInteger)section { return [[UIView alloc] initWithFrame:CGRectMake(0, 0, 0, 0)]; } -(UIView*)tableView:(UITableView*)tableView viewForFooterInSection:(NSInteger)section { return [[UIView alloc] initWithFrame:CGRectMake(0, 0, 0, 0)]; }
(С использованием iOS7, Xcode v5.0)
источник
Для меня эта проблема была решена с помощью следующего кода:
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { return section == 0 ? 1 : 20 // 20 is my other sections height }
Возврат 1 для первого раздела решил проблему.
источник
Чтобы изменить пространство верхнего / нижнего колонтитула , необходимо реализовать следующие методы :
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView?
А ТАКЖЕ
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat
(используйте соответствующие методы для изменения высоты нижнего колонтитула)
Следующий код полностью удаляет пробелы вокруг разделов:
public func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { return nil } public func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? { return nil } public func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat { return .leastNonzeroMagnitude } public func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { return .leastNonzeroMagnitude }
источник