我只是试图绘制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")
}
}
答案 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