Итак, я пытаюсь создать простой UIImageView, чтобы он имел квадратную рамку / размер с CGSize. На основании заданных границ. Например, если контейнер границ имеет ширину и высоту экрана, тогда. Функция должна изменить размер UIImageView, чтобы он выглядел как идеальное квадратное основание на этих границах на экране.
Код:
let myImageView = UIImageView()
myImageView.frame.origin.y = (self.view?.frame.height)! * 0.0
myImageView.frame.origin.x = (self.view?.frame.width)! * 0.0
myImageView.backgroundColor = UIColor.blue
self.view?.insertSubview(myImageView, at: 0)
//("self.view" is the ViewController view that is the same size as the devices screen)
MakeSquare(view: myImageView, boundsOf: self.view)
func MakeSquare(view passedview: UIImageView, boundsOf container: UIView) {
let ratio = container.frame.size.width / container.frame.size.height
if container.frame.width > container.frame.height {
let newHeight = container.frame.width / ratio
passedview.frame.size = CGSize(width: container.frame.width, height: newHeight)
} else{
let newWidth = container.frame.height * ratio
passedview.frame.size = CGSize(width: newWidth, height: container.frame.height)
}
}
Проблема в том, что он возвращает мне те же границы / размер контейнера и не изменяется
Примечание: Я действительно знаю, как это осуществить, но хотел посмотреть, возможно ли это. Моя функция исходит из вопроса здесь . Это берет UIImage и изменяет размеры его родительского представления, чтобы сделать изображение квадратным.