簡體   English   中英

當按下按鈕時,如何獲得顯示隨機文本的標簽? [迅速]

[英]How do I get a label to display random text when a button is pressed? [Swift]

我目前正在開發我的第一個應用程序,並且完全按下按鈕時會在標簽中生成隨機文本。 這里是更多信息:

該應用程序是一個非常簡單的學習工具,它將幫助我記住著名歷史學家的名言(我知道我可以使用筆和紙,但是這種方式更有趣,我的朋友也可以使用它)。

這是我所擁有的:

@IBAction func quoteButtonTapped(sender: AnyObject) {
    var randomNumber = arc4random_uniform(5) + 1
    var QuoteString:String = String(format: "quote%i", randomNumber)

    self.quoteLabel.text = QuoteString

    var quote0 = "Quote 000"
    var quote1 = "Quote 001"
    var quote2 = "Quote 002"
    var quote3 = "Quote 003"
    var quote4 = "Quote 004"
    var quote5 = "Quote 005"
    var quote6 = "Quote 006"
}

(在此處找到代碼圖)

如您所見,隨機生成器在前綴“ quote”上添加一個數字,然后標簽(quoteLabel)顯示結果“ Quotestring”(前綴和隨機數放在一起)

但是,發生的是標簽僅顯示文本“ quote1”或“ quote3”,而不顯示我附加到“ Quote 000”的變量。

我如何獲取標簽以顯示變量(“報價000”),而不是僅顯示變量的名稱(quote5)-我所做的任何重大錯誤,還是缺少一些小東西?

更多信息:

  • 引號000-006就是我所說的要測試的內容,將被引號代替。

  • 該應用程序可以在iOS模擬器中正常運行,只是重復顯示“ quote0”或“ quote5”等。

非常感謝,任何幫助都會很棒!

不要創建一堆單獨的引號變量。 創建一個引號數組:

let quotes = [
  "Now is the time for all good men to come to the aid of their country",
  "Vini, vidi, vichi",
  "I regret that I have but one life to give for my country",
  "Illegitimi non carborundum"
  ]

let index = arc4random_uniform(UInt32(quotes.count))
let aQuote = quotes[index]

順便說一句,不要發布代碼圖像。 像我上面一樣,使用Code標簽將代碼放入您的帖子中。

我如何獲取標簽以顯示變量(“報價000”),而不是僅顯示變量的名稱(quote5)-我所做的任何重大錯誤,還是缺少一些小東西?

問題是這行代碼var QuoteString: String = String(format: "Quote 00%d", randomNumber)實際上是將String值分配給QuoteString 它沒有引用您的變量quote0 .. quote6及其關聯的引號。 您實際上是在告訴它QuoteString =“”中的位+隨機數。

我認為這兩行可以幫助您實現您的目標。

    let quoteArray = ["Quote 000", "Quote 001", "Quote 002", "Quote 003", "Quote 004", "Quote 005", "Quote 006"]
    self.quoteLabel.text = quoteArray[Int(arc4random_uniform(UInt32(quoteArray.count)))]

因為無論如何您只是使用一個字符串,所以不需要所有的字符串vars就是額外的代碼。 只需使用:

var QuoteString:String = String(format:Quote 00%d,randomNumber)

要么

var QuoteString:String = String(format:Quote 00\(randomNumber))

您不應該使用這樣的字符串來選擇變量名。 另一個選擇是使用開關盒,但以上代碼到目前為止是最佳選擇。

好吧,您只是在創建一個字符串對象並將其放入標簽中。 另外,您想引用一個變量,但是在聲明變量之前要先進行引用。 您的范圍也不太正確,您的隨機數會產生1-5之間的某個值,但您想要0-6。 您可以放入7並減去+1,但我會采取不同的方法。

我個人將它們全部放在一個數組中,並像這樣進行操作:

@IBAction func quoteButtonTapped(sender: AnyObject) {

    let quotes: NSArray = ["Quote 000", "Quote 001", "Quote 002", "Quote 003", "Quote 004", "Quote 005", "Quote 006"]

    let range: UInt32 = UInt32(quotes.count)

    let randomNumber = Int(arc4random_uniform(range))
    let QuoteString = quotes.objectAtIndex(randomNumber)

    self.quoteLabel.text = QuoteString as? String

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM