将字符串连接到图像视图



所以我正在构建一个随机图片生成器。以及将特定文本字符串连接到标签。我想知道这是最好的方法,还是更有效的方法?

需要明确的是:这段代码是有效的。

@IBOutlet变量引用:UILabel!@IBOutlet var pictureframe:UIImageView!

var quotes = ["91": "Jepp,Jepp,JEPP!", "97": "nakenTORSDAG", "29P": "Løk"]
var picture = [UIImage]()

override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.



picture = [ #imageLiteral(resourceName: "29p"), #imageLiteral(resourceName: "91"), #imageLiteral(resourceName: "97"), #imageLiteral(resourceName: "y"), #imageLiteral(resourceName: "IMG_3105")]

}
@IBAction func button(_ sender: UIButton) {


pictureframe.image = bilder.randomElement()

switch pictureframe.image {
case UIImage(named: "91"):
quote.text = quotes ["91"]

case UIImage(named: "97"):
quote.text = quotes ["97"]

case UIImage(named: "29p"):
quote.text = quotes ["29P"]

default:
quote.text = "HØR-HØR"
}



}



}

您可以更好地使用随机函数:

func randRange (lower: Int , upper: Int) -> Int {
return lower + Int(arc4random_uniform(UInt32(upper - lower + 1)))
}

然后你可以把它作为字典的索引:

var quotes = ["91": "Jepp,Jepp,JEPP!", "97": "nakenTORSDAG", "29P": "Løk","50P": "any","60F": "hi"]
let array = Array (quotes.keys)
func randRange (lower: Int , upper: Int) -> Int {
return lower + Int(arc4random_uniform(UInt32(upper - lower + 1)))
}
let number = randRange(lower: 0, upper: array.count - 1)
print(quotes[array[number]]!)

最新更新