Не удалось скрыть пустые ячейки в UITableView Swift

Я использую UITableView в быстром приложении и использую свой собственный UITableViewCell.

При попытке скрыть пустые ячейки в UITableView все еще остается белый фон.

Под UITableView у меня есть фоновое изображение (UImageView).

Я уже пытаюсь скрыть эти ячейки, и на самом деле они скрыты, но у меня все еще есть белый фон, используя этот код:

override func viewDidLoad() {
    super.viewDidLoad()
    var tblView =  UIView(frame: CGRect(x: 0,y: 0,width: 0,height: 0))
    tblView.backgroundColor = UIColor.clearColor()
    tableView.tableFooterView = tblView

    var nipName=UINib(nibName: "CustomCell", bundle:nil)
    self.tableView.registerNib(nipName, forCellReuseIdentifier: "CustomCell")
}

person user3210784    schedule 28.06.2014    source источник


Ответы (6)


Более чистое решение:

tableView.tableFooterView = UIView(frame: CGRectZero)

Больше ничего не нужно.

person itsprof    schedule 28.02.2015
comment
@ user3210784 Я считаю, что, возможно, это должен быть принятый ответ, поскольку он выполняет работу с гораздо меньшим количеством кода, чем принятый ответ? - person Ashkan Kh. Nazary; 30.09.2015
comment
абсолютно правильный ответ. Небольшое дополнение: вам нужно упомянуть IBOutlet для tableView, чтобы это работало. - person pulp; 22.12.2015

Вот решение:

tableView.tableFooterView = UIView(frame: CGRect(x: 0, y: 0, width: 0, height: 0))
tableView.tableFooterView?.isHidden = true
tableView.backgroundColor = UIColor.clear
person user3210784    schedule 30.06.2014
comment
UIView does not have a member named 'hidden' и эта строка в любом случае не нужна. - person thefoyer; 26.11.2014

SWIFT 3

tableView.tableFooterView = UIView (фрейм: ноль)

person Jason Silver    schedule 14.10.2016

Еще одно более простое решение этой проблемы - установить фон с изображением для tableView. Изображение должно быть просто белым, если вам просто нужен белый фон для ячеек без данных, или вы также можете установить собственное изображение для фона tableview. Таким образом, данные с ячейками будут иметь нормальный фон, а для ячеек без данных будет отображаться ваше фоновое изображение:

 self.tableViewName.backgroundColor = UIColor (patternImage: UIImage(named:
 "imageName.jpg")!)
person Anmol Kukreja    schedule 18.03.2015

Любой из них работает для меня в Swift 3.0

Способ - 1

let footerView =  UIView(frame: CGRect.zero)
tableView.tableFooterView = footerView
tableView.tableFooterView?.isHidden = true
tableView.backgroundColor = UIColor.clear()

Метод - 2

 tableView.tableFooterView = UIView(frame: CGRect.zero)
person ICL1901    schedule 26.06.2016

Swift 3: самый простой способ

tableView.tableFooterView = UIView()
person Musa almatri    schedule 10.07.2017