gio*_*as_ 8 xcode cgcolor uicolor color-space swift
我试图通过使用滑块创建颜色来选择红色,绿色,蓝色和Alpha的值来更改应用程序按钮的颜色.所以我创建了一个变量,它保存了用户创建的颜色.
ViewController是按钮的位置.ChangeColors是RGB滑块系统.
import UIKit
import Foundation
var buttonColor = UIColor()
class ViewController: UIViewController {
@IBOutlet var tools: UIButton!
@IBOutlet var custom: UIButton!
@IBOutlet var support: UIButton!
@IBOutlet var donate: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
tools.backgroundColor = buttonColor
custom.backgroundColor = buttonColor
support.backgroundColor = buttonColor
donate.backgroundColor = buttonColor
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
Run Code Online (Sandbox Code Playgroud)
第二个是te RGB滑块系统的代码.
import Foundation
import UIKit
class ChangeColors: UIViewController {
@IBOutlet var Red: UISlider!
@IBOutlet var Green: UISlider!
@IBOutlet var Blue: UISlider!
@IBOutlet var Alpha: UISlider!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func preview(sender: AnyObject) {
let rVal = CGFloat(Red.value)
let gVal = CGFloat(Green.value)
let bVal = CGFloat(Blue.value)
let aVal = CGFloat(Alpha.value)
self.view.backgroundColor = UIColor(red: rVal, green: gVal, blue: bVal, alpha: aVal)
}
@IBAction func change(sender: AnyObject) {
let rVal = CGFloat(Red.value)
let gVal = CGFloat(Green.value)
let bVal = CGFloat(Blue.value)
let aVal = CGFloat(Alpha.value)
let color = UIColor(red: rVal, green: gVal, blue: bVal, alpha: aVal)
buttonColor = color
}
}
Run Code Online (Sandbox Code Playgroud)
但是应用程序一旦打开就崩溃并收到以下错误:
由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:'***-CGColor没有为UIColor定义; 需要先转换颜色空间.
我真的需要帮助.谢谢.
问题是UIColor()初始化程序创建的实例不代表实际颜色.如果您更详细地查看崩溃消息,您将看到它实际上创建了一个UIPlaceholderColor实例 - 在没有任何颜色信息的情况下(顾名思义)似乎充当"占位符".因此,您无法将其分配给backgroundColor任何视图.
修复程序定义了您的默认颜色buttonColor.在你的情况下,我建议clearColor.
var buttonColor = UIColor.clearColor()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3986 次 |
| 最近记录: |