【问题标题】:(Swift) UIImageView not showing/invisible(Swift) UIImageView 不显示/不可见
【发布时间】:2018-10-01 01:38:26
【问题描述】:

我只是想绘制一个 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")
    }

}

【问题讨论】:

  • 在初始化 imageView menu_view 时,您正在使用“StartUpNoBack”。稍后按下按钮时,您正在将图像更新为“MenuOpen”,对吗?应用程序启动时图像是否至少加载了“StartUpNoBack”并且按下按钮时没有更新为“Menuopen”?是否所有图像都添加到 assets.xcassets 中?

标签: ios swift uiimageview


【解决方案1】:

最大的可能性是 UIImage(named:) 找不到图像并返回 nil。

但是如果我可以提出建议。切换到使用故事板。虽然编写这样的代码有助于理解事物是如何工作的,但几乎所有这些都可以在 IB 中处理,并且丢失的图像会立即显而易见。

【讨论】:

    【解决方案2】:

    正如@drekka 已回答UIImageView menu_view 没有获取图像。

    添加这一行:

    menu_view.isUserInteractionEnabled = true
    

    你也不能触摸按钮。

    还有这一行:

    menu_view.backgroundColor = UIColor.lightGray
    

    会告诉你menu_view 是否存在于视图中。

    【讨论】:

      【解决方案3】:

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

      - (void)viewDidLayoutSubviews
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-11-29
        • 1970-01-01
        • 1970-01-01
        • 2018-06-11
        相关资源
        最近更新 更多