私は、赤、緑、青、アルファの値を選択するためにスライダを使用して色を作成して、アプリケーションのボタンの色を変更しようとしていました。そこで私は、ユーザーが作成した色を保持する変数を作成しました。UIColorにCGColorが定義されていないため、最初に色空間を変換する必要があります。 Swift 2、Xcode 7
ボタンはどこにありますか。 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.
}
}
第2は、RGB 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
}
}
しかし、すぐにアプリがクラッシュしたとしてもオープンし、次のエラーが表示されます。キャッチされない例外により「NSInvalidArgumentException」、理由にアプリを終了
:「*** -CGColor UIColorのために定義されていません。色空間を最初に変換する必要があります。
私は本当に助けが必要です。ありがとうございました。
変更ANYOBJECTからメソッドのパラメータの型UISlider –
にあなたがbuttonColorある財産のどのような種類の0から1 –
の範囲の値を渡していることを確認してください? –