tableView с пользовательскими ячейками и задержкой - PullRequest
1 голос
/ 29 мая 2019

У меня есть tableView с пользовательскими ячейками, когда я переключаюсь в первый раз, когда происходит задержка, после поиска проблемы я обнаружил, что отображение фотографии - причина, по которой я искал проблему, но ничего не помогло.Я пытался сделать переход в Главной очереди

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

        guard let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as? TVCellMenu else { return UITableViewCell()}
        let data = category[indexPath.row]
        cell.title.text = data.name

        //image is reason

        let image = UIImage(named: data.image_name ?? "", in: Bundle.main, compatibleWith: nil)
        cell.ImageView.image = image

        return cell

}

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

        let storyBoard = UIStoryboard(name: "Main", bundle: nil)
        let vc = storyBoard.instantiateViewController(withIdentifier: "menu") as! VCMenu
        vc.isCategory = false
        vc.subCategory = self.category[indexPath.row].subCategory
        vc.position = self.category[indexPath.row].position
        navigationController?.pushViewController(vc, animated: true)

}

1 Ответ

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

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

например:

добавить функцию в TVCellMenu:

func loadImage(imageName: String) {
    DispatchQueue.main.async {
        let image = UIImage(named: imageName ?? "", in: Bundle.main, compatibleWith: nil)
        self.ImageView.image = image
    }
}

тогда (вместо прямой установки изображения) просто вызовите функцию в cellForRowAt:

    cell.loadImage(imageName: data.image_name ?? ""); 

    return cell
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...