【发布时间】:2021-09-26 02:55:06
【问题描述】:
我对 Swift 和 iOS 开发还很陌生,所以我有点卡在这个问题上。我制作了这个应用程序,它可以在按下按钮时更改图像视图正方形的背景颜色。颜色是从 RGB 光谱中随机选择的。现在我需要一个将背景颜色设置为以前颜色的撤消按钮。
这是我到目前为止所得到的。
var previousColor: UIColor?
@IBAction func didPressRandomButton(_ sender: Any) {
let randomRed = CGFloat.random(in: 0...1)
let randomGreen = CGFloat.random(in: 0...1)
let randomBlue = CGFloat.random(in: 0...1)
let color = UIColor(red: randomRed, green: randomGreen, blue: randomBlue, alpha: 1)
previousColor = color
imageDisplay.backgroundColor = color
}
@IBAction func didPressUndoButton(_ sender: Any) {
if previousColor != nil{
imageDisplay.backgroundColor = previousColor!
}
}
}
【问题讨论】:
-
什么不起作用?逻辑看起来是正确的。而你
if let previousColor = previousColor而不是 docs.swift.org/swift-book/LanguageGuide/OptionalChaining.html -
只是猜测,因为您还没有真正告诉我们问题出在哪里。它是否在您对
previousColor的强制展开时崩溃了?或者您是否获得了nil的价值?