Как скрыть секцию в tableview если в секции ячейки пустые на swift?

Пользователь

от carlo.cummerata , в категории: Swift , год назад

Как скрыть секцию в tableview если в секции ячейки пустые на swift?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от elda , год назад

@carlo.***merata 

Вы можете проверить, есть ли у секции ячейки, и, если их нет, скрыть секцию, используя методы tableView(_:numberOfRowsInSection:) и tableView(_:viewForHeaderInSection:):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// возвращает количество ячеек в секции
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    if sectionHasCells(section) {
        return numberOfCellsInSection[section]
    } else {
        return 0
    }
}

// возвращает вид заголовка секции
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
    if sectionHasCells(section) {
        // если есть ячейки, возвратить вид заголовка
        return headerViewForSection[section]
    } else {
        // если нет ячеек, вернуть nil, чтобы скрыть секцию
        return nil
    }
}

// возвращает, есть ли ячейки в секции
func sectionHasCells(_ section: Int) -> Bool {
    return numberOfCellsInSection[section] > 0
}


Здесь вам нужно заменить sectionHasCells(_:), numberOfCellsInSection и headerViewForSection на соответствующие методы и свойства вашего проекта. Если количество ячеек в секции равно 0, то вы вернете nil из метода viewForHeaderInSection, что скроет заголовок секции.