我对Swift非常陌生,我正在尝试用引号制作一个应用程序,但是我想把Quote和它自己的作者都显示在一个单独的UILabel中。但是我不知道如何做到这一点,因为我有一个randomQuote函数,它为我的数组返回一个随机索引,但是数组只显示引号,我想得到一个随机引号,并得到引号的作者。
以下是我迄今所做的工作:
var quotes = ["'Stay Hungry, Stay Foolish.'", "'Life is what happens while you are busy making other plans.'", ""]
var authors = ["Steve Jobs", "John Lennon"]
func getRandomQuote() -> String{
//get random index
var arrayCount = UInt32(quotes.count)
var randomNumber = arc4random_uniform(arrayCount)
var finalNumber = Int(randomNumber)
return quotes[finalNumber]
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
var randomImage: String = imageChange[randomNumber]
self.motivationText.text = getRandomQuote()
self.imageInspire.image = UIImage(named: randomImage)
}我在考虑用字典,但我认为它行不通。
发布于 2015-08-02 06:45:51
如果作者和引号总是按相同的顺序排列,则可以对引号和作者数组使用相同的finalNumber。
您可以在getRandomQuote中设置两个标签并删除字符串返回,然后可以从viewDidLoad调用它。
字典可以工作,出于随机原因,您可以将它的键视为数组,然后使用键/值对填充标签。
如果引号和作者总是按照相同的顺序排列,那么示例:
func getRandomQuote() {
//get random index
var arrayCount = UInt32(quotes.count)
var randomNumber = arc4random_uniform(arrayCount)
var finalNumber = Int(randomNumber)
self.motivationText.text = quotes[finalNumber]
self.authorName.text = authors[finalNumber] // Just an assumption on label name
}
override func viewDidLoad() {
super.viewDidLoad()
getRandomQuote()
}字典示例:
let quotesWithAuthors = ["Steve Jobs":"Stay Hungry, Stay Foolish","Alan Kay":"Simple things should be simple, complex things should be possible","Bill Gates":"I'm not fake Steve Jobs"]
let authorsArray = quotesWithAuthors.keys.array
let randomQuoteKeyIndex = Int(arc4random_uniform(UInt32(authorsArray.count - 1)))
self.authorName.text = authorsArray[randomQuoteKeyIndex]
self.otivationText.text = quotesWithAuthors[authorsArray[randomQuoteKeyIndex]]本质上,从执行的角度来看,它们非常相似,但可能更容易以这种方式存储。虽然您可能会遇到问题,如果您有多个引号从同一个作者使用一个作者的名字作为字典-在这种情况下,您可能想翻转作者&引号。
https://stackoverflow.com/questions/31769236
复制相似问题