Добавление ограничений в UIViewController не работает - PullRequest
0 голосов
/ 26 мая 2019

Простой вопрос, но я не получаю ответа удовлетворения. Итак, я хочу добавить некоторые ограничения в мой добавленный UIViewController через код.

Большое спасибо :)

override func viewDidLoad() {

let imageLogoName = "pictureIsInAssets"
let imageLogo = UIImage(named: imageLogoName)
let imageLogoView = UIImageView(image: imageLogo!)

setImageContraints()
}



func setImageContraints(){

imageLogoView.translatesAutoresizingMaskIntoConstraints = false
imageLogoView.widthAnchor.constraint(equalToConstant: 180).isActive = true
imageLogoView.heightAnchor.constraint(equalToConstant: 180).isActive = true
imageLogoView.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
imageLogoView.centerYAnchor.constraint(equalTo: view.centerYAnchor, constant: 28).isActive = true
    }


В функции setImageContraints: Ошибка: использование неразрешенного идентификатора 'imageLogoView'

Ответы [ 2 ]

1 голос
/ 26 мая 2019

Вы используете переменную imageLogoView вне области видимости / жизненного цикла.Вместо этого у вас должна быть переменная экземпляра:

class SomeViewController {
    var imageLogoView: UIImageView!

    override func viewDidLoad() {
        super.viewDidLoad() // <-- notice this

        let imageLogoName = "pictureIsInAssets"
        let imageLogo = UIImage(named: imageLogoName)
        self.imageLogoView = UIImageView(image: imageLogo!)

        setImageContraints()
    }
}

или проще:

class SomeViewController {
    let imageLogoView = UIImageView(image: UIImage(imageLiteralResourceName: "pictureIsInAssets"))

    override func viewDidLoad() {
        super.viewDidLoad() // <-- notice this

        setImageContraints()
    }
}

И не забудьте добавить представление изображения в представление.

0 голосов
/ 26 мая 2019

imageLogoView не является глобальной переменной.

Вы должны объявить это так:

class ViewController: UIViewController{
   let imageLogoView: UIImageView!


   override func viewDidLoad() {

   let imageLogoName = "pictureIsInAssets"
   let imageLogo = UIImage(named: imageLogoName)
   imageLogoView = UIImageView(image: imageLogo!)

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