(Swift) UIImageView 未显示/不可见



>我只是想画一个图像视图并在按下按钮时更改它的图像,但图像视图根本没有显示。没有错误,什么都没有。即使按钮有效。

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")
}
}

最有可能的是UIImage(named:)无法找到图像并返回 nil。

但如果我可以提出一个建议。切换到使用情节提要。虽然做这样的代码有助于理解事情是如何工作的,但几乎所有这一切都可以在IB中处理,丢失的图像会立即显现出来。

正如@drekka回答的那样,UIImageViewmenu_view没有得到图像。

添加此行:

menu_view.isUserInteractionEnabled = true

而且您也无法触摸该按钮。

还有这行:

menu_view.backgroundColor = UIColor.lightGray

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

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

- (void)viewDidLayoutSubviews

相关内容

  • 没有找到相关文章

最新更新