首页 > 解决方案 > 将字符串连接到图像视图

问题描述

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

只是要清楚:这段代码有效。

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

    }







}

标签: swift

解决方案


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

 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]]!)

推荐阅读