我確定這很簡單,但我使用按鈕轉到陣列中的下一項并將其顯示在標簽中。這一切都很好,但是一旦到達陣列的末尾,應用程式就會崩潰,因為沒有剩余的專案可以顯示。我如何讓它回到第一個專案?我試過 If 陳述句,但沒有運氣。
import UIKit
class ViewController: UIViewController {
var firstQuote = 0
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
@IBOutlet weak var quotesLabel: UILabel!
var quotes = ["","Quote 1", "Quote 2", "Quote 3"]
@IBAction func nextButton(_ sender: UIButton) {
firstQuote = firstQuote 1
quotesLabel.text = quotes[firstQuote]
}
}
這是我嘗試過的 If 陳述句
@IBAction func nextButton(_ sender: UIButton) {
if firstQuote < quotes.count{
firstQuote = firstQuote 1
quotesLabel.text = quotes[firstQuote]
}
if firstQuote == quotes.count{
firstQuote = 0
quotesLabel.text = quotes[firstQuote]
}
}
uj5u.com熱心網友回復:
一個常見的解決方案是使用%(余數運算子)firstQuote在它等于 0 時回繞到0 quotes.count:
firstQuote = (firstQuote 1) % quotes.count
uj5u.com熱心網友回復:
這對我有用??
class ViewController: UIViewController {
var quotes = ["Quote 0","Quote 1", "Quote 2", "Quote 3"]
var quotesNum = 0
@IBOutlet weak var result: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
result.text = quotes[quotesNum]
}
@IBAction func incrementButton(_ sender: Any) {
if quotesNum < quotes.count {
quotesNum = 1
if quotesNum == quotes.count {
quotesNum = 0
}
result.text = quotes[quotesNum]
}
}
uj5u.com熱心網友回復:
除了解決您的問題之外,使用此代碼,您還可以了解屬性觀察器的作業原理
class ViewController: UIViewController {
var quotes = ["Quote 0","Quote 1", "Quote 2", "Quote 3"]
var quotesNum: Int = 0 {
didSet {
result.text = quotes[quotesNum]
}
}
@IBOutlet weak var result: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
result.text = quotes[quotesNum]
}
@IBAction func incrementButton(_ sender: Any) {
if quotesNum < quotes.count - 1 {
if quotesNum == quotes.count - 1 {
quotesNum = 0
} else {
quotesNum = 1
}
} else {
quotesNum = 0
}
}
uj5u.com熱心網友回復:
這樣的事情應該作業:
@IBAction func nextButton(_ sender: UIButton) {
if firstQuote >= quotes.count {
firstQuote = 0
} else {
firstQuote = firstQuote 1
}
quotesLabel.text = quotes[firstQuote]
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/397316.html
上一篇:從子組件創建一個aswers陣列,然后將此陣列發送到Vue.js2中的父組件
下一篇:添加條件值的Python字典創建
