Как мне центрировать и соотносить изображение в Swift 3?

У меня есть проект в Swift 3, в котором я использую градиент в представлении. Я разместил изображение в представлении, но оно находится под слоем градиента, поэтому я собирался нарисовать изображение программно, а не с помощью раскадровки. Кажется, я не могу понять, как сделать так, чтобы изображение было центрировано, а аспект соответствовал границам представления.

Что я имею...

//Gradient Background
let gradientLayer = CAGradientLayer()
gradientLayer.frame = self.view.frame
gradientLayer.colors = [UIColor(red: 0/255, green: 147/255, blue: 255/255, alpha: 1.0).cgColor, UIColor(red: 162/255, green: 134/255, blue: 255/255, alpha: 1.0).cgColor]
gradientLayer.locations = [0.0, 1.0]
gradientLayer.startPoint = CGPoint(x: 0.0, y: 1.0)
gradientLayer.endPoint = CGPoint(x: 1.0, y: 0.0)
self.view.layer.addSublayer(gradientLayer)

//Image
let mainImage = UIImage(named:"WhiteLogoFront")
var mainImageView = UIImageView(image:mainImage)
self.view.addSubview(mainImageView)

person Tanner Helton    schedule 17.02.2017    source источник
comment
Возможный дубликат Set contentMode UIImageView   -  person    schedule 17.02.2017
comment
Пожалуйста, прикрепите изображение того, что вы ожидаете от вас ... и того, что вы получаете в настоящее время.   -  person Prema Janoti    schedule 17.02.2017


Ответы (2)


Можешь попробовать

let mainImage = UIImage(named:"WhiteLogoFront")
    var mainImageView = UIImageView(image:mainImage)
    mainImageView.contentMode = .ScaleAspectFit
person Ram    schedule 17.02.2017
comment
Я попробовал это, но, похоже, ничего не изменилось. - person Tanner Helton; 17.02.2017
comment
можете ли вы указать кадр для основного изображения как mainImage.frame = CGRect(x:, y:, width:, height:) - person Ram; 17.02.2017
comment
установите x, y высоту и ширину, как вы хотите - person Ram; 17.02.2017

 let gradientLayer = CAGradientLayer()
    gradientLayer.frame = self.view.frame
    gradientLayer.colors = [UIColor(red: 0/255, green: 147/255, blue: 255/255, alpha: 1.0).cgColor, UIColor(red: 162/255, green: 134/255, blue: 255/255, alpha: 1.0).cgColor]
    gradientLayer.locations = [0.0, 1.0]
    gradientLayer.startPoint = CGPoint(x: 0.0, y: 1.0)
    gradientLayer.endPoint = CGPoint(x: 1.0, y: 0.0)
    self.view.layer.addSublayer(gradientLayer)

    //Image
    let mainImage = UIImage(named:"WhiteLogoFront")
    var mainImageView = UIImageView(image:mainImage)
    mainImageView.center = self.view.cente
    mainImageView.contentMode = .ScaleAspectFit
    self.view.addSubview(mainImageView)

Попробуй это

person Yogesh Makwana    schedule 17.02.2017