请允许我在前言中说我在堆栈溢出时查看了类似于此的不同问题(并且我是iOS / Swift的新手),并且他们确实提供了帮助。但是,我现在的问题如下,实际上是2。
第一个是是否可以在viewDidLoad方法中嵌套函数?当我尝试将其作为func createButton时,它甚至没有显示两个不同的新按钮,实际上它除了显示我通过故事板添加的单个图像外什么也没有显示。
第二个问题是引用图像的正确方法是什么,因为当我尝试运行我的代码时,我看到创建了两个只有蓝色背景的按钮。对此的扩展是按钮创建的“action:”部分的正确语法是什么,因为我不知道引用自己的函数的有效方法是什么。
代码如下:
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
var imageNames : [String] = ["dino2Button", "dino3Button"]
var yposition : Int = 133
let xposition : Int = 112
let width : Int = 150
let height : Int = 113
//func createButton() {
for index in 0...1 {
print("index is: \(index)")
let image = UIImage(named: imageNames[index]) as UIImage?
let button = UIButton(type: .roundedRect) as UIButton
button.frame = CGRect(x: xposition, y: (yposition+10), width: width, height: height)
yposition += height + 10;
button.setImage(image, for: .normal)
button.addTarget(self, action: "", for: .touchUpInside)
self.view.addSubview(button)
}
//}
}
再一次,我一直在做iOS总共两天。
答案 0 :(得分:0)
是的,只要它们不执行异步操作,就可以在视图中嵌套函数加载。如果他们是您必须意识到您无法保证他们将在您的视图出现之前完成。但除此之外,嵌套函数没有实际问题。
编辑:检查苹果documents
要将图像添加到按钮,请按以下步骤操作:
button.setImage(UIImage(named: "checkbox_off"), for: .normal)
button.setImage(UIImage(named: "checkbox_on"), for: .selected)
button.setImage(UIImage(named: "checkbox_on"), for: .highlighted)
向按钮添加操作:
button.addTarget(self, action: #selector(CheckBox.touchUpInside(_sender:)), for: .touchUpInside)
CheckBox是你的类名(放置按钮的位置或你要调用的任何其他目标,而目标指向的是(在本例中为“self”))
func touchUpInside(_sender: Any?) {
self.isSelected = !(self.isSelected)
}