(快速)UIImageView不显示/不可见

时间:2018-10-01 01:38:26

标签: ios swift uiimageview

我只是试图绘制imageView并在按下Button时更改它的图像,但是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 :(得分:0)

最高可能性是UIImage(named:)无法找到图片并返回nil。

但是我可以提个建议。切换到使用情节提要。尽管执行这样的代码有助于理解事物的工作方式,但是几乎所有这些都可以在IB中处理,并且丢失的图像将立即显而易见。

答案 1 :(得分:0)

@drekka回答UIImageView menu_view没有得到图像。

添加此行:

menu_view.isUserInteractionEnabled = true

,您也将无法触摸该按钮。

这行:

menu_view.backgroundColor = UIColor.lightGray

会告诉您视图中是否存在menu_view

答案 2 :(得分:0)

执行与布局相关的任务,例如在中设置框架,

- (void)viewDidLayoutSubviews