Обновление высоты UICollectionViewcCell на основе содержимого UITableview - PullRequest
0 голосов
/ 29 октября 2019

У меня есть UITableView внутри UICollectionViewCell, и я хочу обновить высоту UICollectionViewCell, основываясь на высоте содержимого таблицы, и я могу получить высоту содержимого таблицы, но когда я назначаю высоту представлению таблицы. высота ячейки представления коллекции не обновляется ниже, мое усилие

    class TourDetailsAdditionalInfoCollectionViewCell: UICollectionViewCell {

    @IBOutlet weak var titleLabel: UILabel!
    @IBOutlet weak var addtionalInfoTableView: UITableView!

    var additionalInfo : [String]?

    func populateData(additionalInfo: [String]?) -> Void {
        self.additionalInfo = additionalInfo
        self.getTableViewHeight()
        print("getTableViewHeight == \(height)") // Here i am getting proper height

        self.addtionalInfoTableView.reloadData()
        self.addtionalInfoTableView.snp.updateConstraints { (maker) in
            maker.height.equalTo(self.height)
            self.contentView.layoutIfNeeded()
        }
        self.layoutIfNeeded()
    }

    var height : CGFloat = 0.0
    func getTableViewHeight() -> Void {
        let stringWidthBounds : CGFloat = UIScreen.main.bounds.size.width - 90.0
        let textFont = UIFont.init(name: AppFont().medium, size: 14.0)
        for string in additionalInfo ?? [String]() {
            height = height + string.heightWithConstrainedWidth(width: stringWidthBounds, font: textFont!)
        }
    }

    lazy var width: NSLayoutConstraint = {
        let width = contentView.widthAnchor.constraint(equalToConstant: bounds.size.width)
        width.isActive = true
        return width
    }()

    override func systemLayoutSizeFitting(_ targetSize: CGSize, withHorizontalFittingPriority horizontalFittingPriority: UILayoutPriority, verticalFittingPriority: UILayoutPriority) -> CGSize {
        width.constant = bounds.size.width
        return contentView.systemLayoutSizeFitting(CGSize(width: targetSize.width, height: 1))
    }
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...