heightForRowAtIndexPath не работает должным образом

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

Код для изображения в ячейке:

private var cellImage: UIImage? {
        get { return cellImageView.image }
        set {
            cellImageView?.image = newValue
            if let newimage = newValue {
                heightConstraint.constant = newimage.size.width / CGFloat(aspectRatio)
            }
        }
    }

Код в tableView:

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
            return tableView.bounds.size.width / CGFloat(aspectRatio)
    }

aspectRatio-это переменная, которая одинакова в обоих случаях. aspectRation = ширина / высота изображения. Кроме того, я проверил, чтобы увидеть, что высота, полученная в обоих местах, одинакова, и они являются одним и тем же значением (во время выполнения).

Кто-нибудь знает, почему высота ячейки установлена неправильно?

2 ответа

  1. Спасибо всем, проблема решена. Вот решение, которое я нашел:

    Я удалил вычисление ограничения высоты для cellImage и вместо этого добавил ограничение autolayout вида изображения к нижнему краю ячейки.
    Это исправило проблему.