所以我构建了一个随机图片生成器。以及将特定文本串连接到标签。我想知道这是最好的方法,还是更有效的方法?
我只想说清楚:这段代码可以工作。
@IBOutlet var引用: UILabel!@IBOutlet var图片帧: 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"
}
}
}发布于 2020-12-15 02:04:23
你可以使用比这个更好的随机函数:
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]]!)https://stackoverflow.com/questions/65294015
复制相似问题