(Swift) UIImageView не отображается / невидимый - PullRequest
0 голосов
/ 01 октября 2018

Я просто пытаюсь нарисовать imageView и изменить его изображение при нажатии кнопки, но imageView вообще не отображается.Нет ошибок, ничего.Даже если кнопка работает.

import UIKit

class ViewController: UIViewController {

    var menu_view: UIImageView = UIImageView(image: UIImage(named: "StartUpNoBack"))

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        let menu_midbtn: UIButton = UIButton(type: UIButtonType.system) as UIButton
        menu_midbtn.frame = CGRect(x: 165, y: 318, width: 45, height: 40)
        menu_midbtn.setBackgroundImage(UIImage(named: "penta"), for: UIControlState.normal)
        menu_midbtn.addTarget(self, action: #selector(openMenu), for: .touchUpInside)
        menu_midbtn.tag = 1
        self.view.addSubview(menu_midbtn)


        menu_view.frame = CGRect(x: 0, y: 0, width: 375, height: 667)
        //menu_view.alpha = 1.0
        self.view.addSubview(menu_view)
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    @objc func openMenu(){
        menu_view.image = UIImage(named: "MenuOpen")
        menu_view.setNeedsDisplay()
        print("open menu")
    }

}

Ответы [ 3 ]

0 голосов
/ 01 октября 2018

Поскольку @drekka ответил, что UIImageView menu_view не получает изображение.

Добавьте эту строку:

menu_view.isUserInteractionEnabled = true

, и вы не сможете прикоснуться ккнопка тоже.

И эта строка:

menu_view.backgroundColor = UIColor.lightGray

скажет вам, что menu_view присутствует в представлении или нет.

0 голосов
/ 01 октября 2018

Выполните задачи, связанные с макетом, такие как установка кадров в,

- (void)viewDidLayoutSubviews
0 голосов
/ 01 октября 2018

самая высокая вероятность того, что UIImage(named:) не сможет найти изображение и вернет ноль.

Но если бы я мог сделать предложение.Переключитесь на использование раскадровки.Хотя выполнение подобного кода помогает понять, как все работает, почти все это может быть обработано в IB, и пропущенные изображения будут сразу очевидны.

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