Используйте пользовательские UITableViewCells и дублируйте их, используя массив с Swift - PullRequest
0 голосов
/ 05 июня 2019

Я разрабатываю приложение для iOS, и у меня есть UITableView, который генерирует UITableViewCell s на основе массива.

Другими словами, у меня есть пользовательская ячейка, в которой есть UIViews. Как добавить 2-мерный массив, который содержит текст метки репо и текст метки URL-адреса, и создать множество ячеек с array.count.

My custom UITableViewCell

Вот мой код:

class SourcesViewController: UITableViewController {

    var array:[[String]] = [["Thunderbolt iOS Utilities", "https://repo.thunderbolt.semiak.dev"], ["Semiak's Repo", "repo.semiak.dev"]]

    override func viewDidLoad()
    {
        super.viewDidLoad()
    }

    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
        //How can I setup all the arguments my custom UITableViewCell needs?
        return cell
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return array.count
    }
}

Извините, если объяснение действительно плохое, я никогда раньше этим не занимался, более того, я новичок в разработке для iOS, поэтому не знаю, как именно объяснить, что мне нужно.

1 Ответ

1 голос
/ 05 июня 2019

Вот отправная точка (я бы не рекомендовал этот код для производства. Есть гораздо лучшие способы сделать это (например, используя массив структур, поместить код в пользовательскую ячейку и т. Д.))

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
    let dataArray = array[indexPath.row] // get the data for the cell
    // not a great idea but....
    cell.repoLabel.text = dataArray.first ?? ""
    cell.urlLabel.text = dataArray.last ?? ""
    return cell
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...