Я создал UIImageView
в IB с режимом содержания Aspect Fit. Затем я загружаю большое изображение в это представление из URL-адреса.Изменение размера рамки UIImageView после scaleAspectFit
@IBOutlet weak var pictureView: UIImageView!
NSURLSession.sharedSession().dataTaskWithURL(url, completionHandler: { (data, _, error) -> Void in
guard let data = data where error == nil,
let image = UIImage(data: data)
else {
print(error?.localizedDescription)
return
}
pictureView.image = image
pictureView.clipsToBounds = true
setNeedsLayout()
layoutIfNeeded()
}).resume()
В изображение загружается в в UIImageView
и Аспект Fit изменяет размер изображения правильно, чтобы отобразить все это в кадре, однако рама UIImageView
устанавливается в размер исходного большого изображения. У меня есть эта огромная рамка, обертывающая это изображение с меньшим размером. Мне нужен фрейм UIImageView
, чтобы плотно обернуть Aspect Fit UIImage, отбросив все мое другое форматирование.
Нужно ли мне как-то рассчитать новый размер кадра вручную для UIImageView
, или я пропускаю установку где-нибудь?
EDIT:
Я также попытался следующие действия, чтобы изменить размер UIImageView
рамку вокруг изображения:
pictureView.frame = AVMakeRectWithAspectRatioInsideRect(picture.size, pictureView.frame)
и ...
pictureView.frame = CGRectMake(self.pictureView.frame.origin.x, self.pictureView.frame.origin.y, pictureImage.size.width, pictureImage.size.height)
И я также пытался играя с настройками сопротивления сжатию.
Я имею в виду, что, по-видимому, происходит то, что iOS устанавливает изображение в 'UIImageView' с фреймом, установленным в полном размере исходного изображения до Aspect Установите размер. У меня есть 'UIImageView' внутри' UIView', с ограничениями по всем ребрам. Отношение изображения будет отличаться иногда от того, что предписано 'UIImageView'. Мне нужно, чтобы макет был достаточно гибким, чтобы справиться с этим. Изображения не должны сбрасываться с левого/правого краев, но также не должны заполнять все эти рамки. – Fook
Мой вопрос в двух словах: когда «UIImageView» изменяет размер с помощью Aspect Fit, почему кадр не сворачивается в эти новые измерения, а не остается фиксированным? Как изменить размер изображения? – Fook
Что делать, если вы изменили contentMode с 'ScaleAspectFit' на' ScaleAspectFill' – impression7vx