Ответ 1
Если вы предоставите представление нижнему колонтитулу, разделители между пустыми строками исчезнут.
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 1, 1)];
myTableView.tableFooterView = view;
Я загружаю содержимое в UITableView динамически. Если есть данные, таблица должна отображать данные. Если нет данных, в таблице должна отображаться простая страница. Но в моем приложении таблица отображает обычную страницу с двумя разделительными линиями. Мне нужно удалить эту разделительную линию и отобразить обычную белую страницу. Пожалуйста, предложите?
Любая помощь будет оценена!
Если вы предоставите представление нижнему колонтитулу, разделители между пустыми строками исчезнут.
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 1, 1)];
myTableView.tableFooterView = view;
Вы можете проверить пустой случай, если ваш источник данных пуст, добавьте представление заполнителя поверх таблицы. Если они не пустые, удалите их.
Обычный UITableView
всегда будет отображать разделительные строки, даже если он пуст. Вы могли заметить, что если у вас есть список только с одной или двумя строками, все еще видны линии разделителя. Это поведение по умолчанию и не должно быть переопределено, если у вас нет серьезной причины действительно.
Я предполагаю, что вы видите только две разделительные линии, потому что ваши строки очень высоки?
Если вам нужно действительно удалить строки разделителя, то установите для свойства separatorStyle
в виде таблицы значение UITableViewCellSeparatorStyleNone
. Обратите внимание, что это повлияет на все строки. Поэтому, если вам все еще нужны разделители для существующих строк, вы должны нарисовать эти разделительные строки в своих UITableViewCell
объектах.
Его можно упростить до одной строки, используя решение @bbarnhart:
myTableView.tableFooterView = [[[UIView alloc] initWithFrame:CGRectZero] autorelease];
Два шага:
добавить этот код в viewDidLoad
- (void)viewDidLoad
{
emptyplaceholder = [[UILabel alloc] initWithFrame:CGRectMake(80, 100, 640, 100)];
emptyplaceholder.text = NSLocalizedString(@"No shift changes...", "no shift changes");
emptyplaceholder.alpha = 0.2;
[self.view addSubview:emptyplaceholder];
}
добавить этот код в контроллерDidChangeContent:
- (void)controllerDidChangeContent:(NSFetchedResultsController *)controller {
// The fetch controller has sent all current change notifications, so tell the table view to process all updates.
if (self.fetchedResultsController.fetchedObjects.count > 0)
emptyplaceholder.hidden = YES;
else
emptyplaceholder.hidden = NO;
[self.tableView endUpdates];
}
поэтому UILable исчезнет, когда у вас есть ячейка даты, когда нет данных в таблице, ярлык будет отображаться снова.
Хороший дизайн пользовательского интерфейса для добавления нового UIView в UIViewController, когда нет данных "Нет данных", добавив его, будут скрыты разделительные строки UITableView