Интерфейсный конструктор (iOS 9+)
Просто перетащите UIView на стол. В раскадровке он будет располагаться вверху под вашими пользовательскими ячейками. Вы можете предпочесть название «нижний колонтитул».
Здесь это показано зеленым для ясности, вы, вероятно, захотите чистый цвет.
Обратите внимание, что, регулируя высоту, вы можете по своему усмотрению влиять на то, как обрабатывается «нижний отскок» таблицы. (Высота ноль обычно в порядке).
Чтобы сделать это программно:
стриж
override func viewDidLoad() {
super.viewDidLoad()
self.tableView.tableFooterView = UIView()
}
Objective-C
iOS 6.1+
- (void)viewDidLoad
{
[super viewDidLoad];
// This will remove extra separators from tableview
self.tableView.tableFooterView = [UIView new];
}
или, если вы предпочитаете,
self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];
Исторически в iOS:
Добавьте к контроллеру табличного представления ...
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
// This will create a "invisible" footer
return CGFLOAT_MIN;
}
и при необходимости ...
- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{
return [UIView new];
// If you are not using ARC:
// return [[UIView new] autorelease];
}
tableFooterView
оставляет разделитель в последней ячейке в строке, так как таблица все еще ожидает содержимое ниже этой ячейки. Использование исторического способа устранит этот последний разделитель и в целом выглядит лучше.Вот еще один способ сделать это без сгруппированного стиля таблицы, и вы, вероятно, не догадаетесь. Добавление
верхнего инижнего колонтитула к таблице(возможно, одного или другого достаточно, еще не проверено)приводит к исчезновению разделителей из строк-заполнителей / пустых строк.Я наткнулся на это, потому что я хотел немного места сверху и снизу столов, чтобы уменьшить риск нажатия кнопок вместо ячейки стола с мясистыми пальцами. Вот метод для вставки пустого представления в качестве верхнего и нижнего колонтитула. Используйте любую высоту, какую захотите, вы все равно уберете лишние разделительные линии.
В ответ на @Casebash я вернулся к коду в своем приложении (менеджер списков «AcmeLists» в магазине iTunes ...) и коротко замкнул метод addHeaderAndFooter для проверки. Без этого у меня есть дополнительные разделители строк; с кодом, у меня есть то, что вы видите в этом окне оснастки: нет таблицы разделителей строк изображения . Поэтому я не уверен, почему это не сработало бы для вас. Более того, для меня имеет смысл, что наличие любого пользовательского нижнего колонтитула в табличном представлении обязательно должно прекратить рисовать разделители строк для пустых строк под ним. Это было бы отвратительно. Для справки я посмотрел таблицы, в которых было больше строк, чем можно было увидеть на экране, а затем таблицу с двумя строками. В обоих случаях нет посторонних разделителей.
Возможно, ваши собственные представления не были добавлены. Для того, чтобы проверить , что установить цвет фона на нечто иное , чем
clearColor
, например,[UIColor redColor]
. Если вы не видите красных полос внизу таблицы, значит, ваш нижний колонтитул не установлен.источник
Удаление лишних разделительных линий для пустых строк в UITableView в Swift
источник
Я хотел бы расширить ответ WKW :
Простое добавление только нижнего колонтитула с высотой 0 добьется цели. (проверено на SDK 4.2, 4.4.1)
или даже проще - где вы настраиваете свое табличное представление, добавьте эту строку:
или даже проще - просто удалить любые разделители:
Спасибо WKW снова :)
источник
Для iOS 7+ с использованием раскадровок
Просто перетащите
UIView
вUITableView
нижний колонтитул. Установите высоту нижнего колонтитула в 0.источник
Попробуй это. Это сработало для меня:
источник
Для Свифта:
источник
Если вы используете Swift, добавьте следующий код в viewDidLoad контроллера, который управляет табличным представлением:
источник
Вы можете просто добавить пустой нижний колонтитул в конце, тогда он будет скрывать пустые ячейки, но это также будет выглядеть довольно некрасиво:
Есть лучший подход: добавьте линию в 1 точку в конце табличного представления, поскольку нижний колонтитул и пустые ячейки также больше не будут отображаться.
источник
просто добавьте этот код ( Swift ). ,
источник
Продвижение решения J. Costa: вы можете внести глобальные изменения в таблицу, добавив следующую строку кода:
внутри первого возможного метода (обычно в
AppDelegate
, в:application:didFinishLaunchingWithOptions:
метод).источник
Я знаю, что этот вопрос был принят ответ, но я привел здесь различные способы, как скрыть дополнительную разделительную линию
UITableView
.Вы можете скрыть
tableView
стандартную разделительную линию и добавить свою собственную строку вверху каждой ячейки.Обновить:
Самый простой способ добавить пользовательский разделитель - добавить простую
UIView
высоту 1px:ИЛИ
ИЛИ
ИЛИ Лучший и простой способ, который мне нравится, это
Попробуйте любой из них;
источник
Вы можете найти много ответов на этот вопрос. Большинство из них связаны с манипуляциями с атрибутом
UITableView
's',tableFooterView
и это правильный способ скрыть пустые строки. Для удобства я создал простое расширение, которое позволяет включать / выключать пустые строки из Interface Builder. Вы можете проверить его из этого GIST файла. Я надеюсь, что это может сэкономить немного вашего времени.Применение:
источник
uitableview дополнительные разделительные линии скрыть дополнительные разделительные линии скрыть в Swift 3.0
источник
Если вам не нужен какой-либо разделитель после последней ячейки, тогда вам нужна близкая к нулю, но ненулевая высота для нижнего колонтитула.
В вашем
UITableViewDelegate
:источник
Swift прекрасно работает с:
источник
Просто добавьте представление с желаемым цветом разделителя в качестве цвета фона, шириной 100%, высотой 1px в позиции x0 y-1 к вашему tableViewCell. Убедитесь, что tableViewCell не обрезает подпредставления, вместо этого tableView должен.
Таким образом, вы получаете абсолютно простой и работающий разделитель только между существующими ячейками без какого-либо взлома кода или IB.
Примечание. На вертикальной отскок вверху отображается первый разделитель, но это не должно быть проблемой, потому что это поведение iOS по умолчанию.
источник
Я использовал табличное представление, чтобы показать фиксированное количество строк с фиксированной высотой, поэтому я просто изменил его размер и сделал его недоступным для прокрутки.
источник
Чтобы программно удалить лишние разделительные линии из нижней части UItableview, просто запишите следующие две строки кода, и он удалит из него дополнительный разделитель.
Этот трюк работает на меня все время, попробуйте сами.
источник
Мне посчастливилось реализовать один фрагмент принятого ответа (iOS 9+, Swift 2.2). Я пытался реализовать:
Тем не менее, это не повлияло на мое
tableView
- я думаю, что это может иметь какое-то отношение к тому, что я использовалUITableViewController
.Вместо этого мне пришлось только переопределить
viewForFooterInSection
метод (я не устанавливал вtableFooterView
другом месте):Это работало нормально для
tableView
одного раздела (если у вас есть несколько разделов, вам нужно указать последний).источник
Если у вас есть только один раздел, то самый быстрый и простой способ - просто установить стиль представления таблицы с «Обычный» на «Сгруппированный». (см. изображение)
Если у вас есть больше разделов, вам может потребоваться установить нулевую высоту заголовка (в зависимости от вкуса вашего / вашего клиента / вашего руководителя проекта)
Если у вас есть больше разделов, и вы не хотите связываться с заголовками (даже если в простейшем случае это всего лишь одна строка), вам нужно установить UIView в качестве нижнего колонтитула, как это было объяснено в предыдущих ответах)
источник
Расширение Swift 4.0
Просто небольшое расширение для раскадровки:
источник
Быстрый и легкий Swift 4 way.
Если у вас есть статические клетки. Вы также можете отключить разделитель из окна инспектора. (это не будет желательно, если вам нужен разделитель. В этом случае используйте метод, показанный выше)
источник
super.viewDidLoad()
), и он включен в вики-ответ сверху. Что касается удаления всех разделителей, то в действительности это не тот вопрос, поэтому лучше откатить последнее изменение и / или полностью удалить свой ответ.Если вы хотите удалить ненужное место в UITableview, вы можете использовать ниже два метода
источник
Я добавил это небольшое расширение таблицы, которое помогает во всем
источник
Попробуй с этим
для цели C
для Свифта
источник
Попробуй это
источник
UIKit
не создает пустую ячейку, когдаtableView
имеетtableFooterView
. Таким образом, мы можем сделать трюк и назначить объект нулевой высотыUIView
как нижний колонтитулtableView
.источник
В случае , если у вас есть
searchbar
в вашемview
(чтобы ограничить количество результатов, например), вы должны добавить следующее вshouldReloadTableForSearchString
иshouldReloadTableForSearchScope:
источник
В Swift (я использую 4.0), вы можете сделать это путем создания пользовательского
UITableViewCell
класса, а такжеoverriding
наsetSelected
метод. Тогдаseparator insets
все к 0 . (мой основной класс с табличным представлением имеет четкий фон) цвет.источник