Пользовательский UITableViewCell heightForRow не работает в Swift 4 - PullRequest
0 голосов
/ 08 ноября 2018

Я создал пользовательский UITableView из пера и пытаюсь изменить высоту строки в Инспекторе размера в ShopImagesViewCell.

ShopImagesViewCell.xib:

enter image description here

Итак, я написал код для изменения высоты строки в ShopImagesViewCell.swift.

class ShopImagesViewCell: UITableViewCell, UITableViewDelegate
{
    @IBOutlet weak var imageCollectionView: UICollectionView!
    @IBOutlet weak var titleLabel: UILabel!
    @IBOutlet weak var starView: UIView!
    @IBOutlet weak var starImageView: UIImageView!

    override func awakeFromNib()
    {
        super.awakeFromNib()
        //....
    }

    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat
    { // This function does not work.
        return CGFloat(300) // 300 changes fluidly
    }
}

extension ShopImagesViewCell
{
    func setView()
    {
        self.imageCollectionView.delegate = self
        self.imageCollectionView.dataSource = self
        self.imageCollectionView.regCells(cells: ["ShopImageCollectionViewCell","ShopNonImageCollectionViewCell"])
    }
}

Так как функция не работает, я попытался найти способ и попытался сделать

self.tableView.delegate = self

Однако tableView не существовало, и я попытался добавить ShopImagesViewCell с помощью @outlet, но это оказалось невозможным.

Как мне заставить работать вышеуказанную функцию?

Если вы хотите прокомментировать дополнительный исходный код, я добавлю его, если это возможно.

1 Ответ

0 голосов
/ 08 ноября 2018

Ваша ячейка UITableViewCell, которая содержит UICollectionView. Поэтому ваш класс ячейки должен соответствовать методам UICollectionViewDataSource и UICollectionViewDelegate`. Ваша ячейка табличного представления не должна реализовывать какие-либо источники данных табличного представления или методы делегата, а также не должна соответствовать протоколам табличного представления. Поместите те в контроллер представления с представлением таблицы.

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