Как вернуться со значением раздела, если в быстром представлении таблицы есть больше (приблизительно, от 10 до 20) разделов? - PullRequest
0 голосов
/ 23 мая 2019

Здесь я создаю 3 раздела в табличном представлении.

, поэтому в

numberOfRowsInSection -> возвращаю счетчик каждого массива в каждом разделе, как показано ниже

    if(section == 0){

        return storedArr[section].count
    }
    else if(section == 1){

        return storedArr[section].count
    }
    else if(section == 2){

        return storedArr[section].count
    }

Есть ли какой-нибудь простой способ сделать это, если у меня есть больше разделов в табличном представлении для примера: от 10 до 20 разделов.

   var arr1:[String] = []
    var arr2:[String] = []
    var arr3:[String] = []

    var celebrityArr:[[String]] = []

override func viewDidLoad() {
        super.viewDidLoad()

        storedArr = [arr1, arr2, arr3]
    }


override func numberOfSections(in tableView: UITableView) -> Int {

        return storedArr.count
    }

    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

        if(section == 0){

            return storedArr[section].count
        }
        else if(section == 1){

            return storedArr[section].count
        }
        else if(section == 2){

            return storedArr[section].count
        }
        // and so on...... 
        return 0
    }

1 Ответ

0 голосов
/ 23 мая 2019

Вместо обработки для каждого section отдельно, напишите общий код, который будет читать из storedArr, т.е.

var storedArr = [[String]]()

Количество секций - общее количество элементов в storedArr

Количество строк в секции-x - общее количество элементов в x-м элементе storedArr

func numberOfSections(in tableView: UITableView) -> Int {
    return self.storedArr.count
}

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return self.storedArr[section].count
}

В этом подходе, независимо от того, сколько у нас разделов, скажем, 100 sections, все они будут обрабатываться автоматически.

...