как изменить размер изображения, чтобы оно поместилось в UIImageview в ячейку таблицы - PullRequest
0 голосов
/ 28 января 2019

Я получаю данные от пользователя, такие как название, описание и фотография продукта, и отображаю их на странице сообщений.Я получаю изображение, загружаю URL в firebase, затем снова получаю его с сеансом URL, и вот мой код для получения изображения:

class ImageService {

    static let cache = NSCache<NSString, UIImage>()

    static func downloadImage(withURL url:URL, completion: @escaping (_ image:UIImage?)->()) {
        let dataTask = URLSession.shared.dataTask(with: url) { data, responseURL, error in
            var downloadedImage:UIImage?

            if let data = data {
                downloadedImage = UIImage(data: data)
            }

            if downloadedImage != nil {
                cache.setObject(downloadedImage!, forKey: url.absoluteString as NSString)
            }

            DispatchQueue.main.async {
                completion(downloadedImage)
            }

        }

        dataTask.resume()
    }

    static func getImage(withURL url:URL, completion: @escaping (_ image:UIImage?)->()) {
        if let image = cache.object(forKey: url.absoluteString as NSString) {
            completion(image)
        } else {
            downloadImage(withURL: url, completion: completion)
        }
    }

, а вот код, в котором я установил эти данные:

func set(post:Post) {
    ImageService.getImage(withURL: post.imageid) { (image) in

        self.postimage.image = image
    }
    titlel.text = post.title
    usernamel.text = post.username
    desct.text = post.desc
}

, и мои сообщения выглядят так, когда приложение запущено: не годится и nogood2 .Кроме того, вот фотография моей камеры, и у них у всех есть ограничения, поэтому я не думаю, что проблема в этой камере, но все еще .Я просто хочу, чтобы пользователи рассматривали изображения как квадратные нормальные картинки, выглядящие не такими высокими и худыми.

Ответы [ 3 ]

0 голосов
/ 29 января 2019

Использовать self.postimage.contentmode.scaleaspectfit

0 голосов
/ 29 января 2019

На снимке экрана я вижу, что вы не указали ограничение по высоте, поэтому изображения высокие.Для отображения квадратного изображения просто укажите ограничение ширины и высоты в UIImageView

0 голосов
/ 28 января 2019

Установите режим содержимого просмотра изображения в качестве заливки аспекта и установите для свойства привязки значение true.

self.postimage.contentMode = .scaleAspectFill
self.postimage.clipsToBounds = true
...