Как найти высоту и ширину изображения и подогнать ячейку таблицы с соотношением сторон? - PullRequest
0 голосов
/ 29 ноября 2018

У меня растянутые изображения, отображаемые в TableViewCell.Мне нужно найти высоту и ширину изображения из изображения URL.Мне нужно найти соотношение сторон и разместить изображение в ячейке в соответствии с высотой динамической ячейки в Swift 4.

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: CellIdentifier.ManCell) as! ManCell
    let image = self.posts[indexPath.row]["thumbnail_images"]["medium_large"]["url"].stringValue

    let cleanString = removeHtmlTagsFromResponse(index: indexPath.row)
    cell.nutriTitle.text = self.posts[indexPath.row]["title"].stringValue
    print("labels: \(self.posts[indexPath.row]["title"].stringValue)")

    cell.nutriDetail.text = cleanString
    let lCount = calculateHeightOfLable(cellLabel: cell.nutriDetail)
    print("string: \(cleanString)")
    print("HeightCount: \(lCount)")
    cell.nutriImage.sd_setImage(with: URL(string: image), placeholderImage: UIImage(named: "no_image"))
    let heightContentSize = cell.bounds.height
    print("HeightContentSize= ",heightContentSize)
    return cell
}

1 Ответ

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

Похоже, вы используете SDWebImage для загрузки изображений с URL-адреса.В документации вы найдете, что в UIImage есть еще один метод: sd_setImageWithURL:placeholderImage:options:completed:, который принимает обработчик завершения с 4 параметрами: image: UIImage, error: NSError, isCache: Bool и url: URl.Используйте первый параметр, чтобы получить размер изображения.Обратите внимание, что это асинхронно;Вы не получите размер, пока изображение не будет загружено (при условии, что у вас его еще нет в кэше), поэтому размер ячейки может измениться, если вы ее динамически изменяете.

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