2015-07-25 2 views
1

Я хочу, чтобы мое приложение начиналось с цвета в представлении, но когда я добавляю значения UIColor в ViewDidLoad, я меняю цвет на белый! а не красный цвет, который я хочу добавить. Вот мой код, я проверил весь код, но я вроде программирования в стрижа, так что я не нахожу что-то, что не получает работу:UIView не меняет правильные значения цвета SWIFT

class RGBViewController: UIViewController { 
    //Sldiers 
    @IBOutlet weak var redSlider: UISlider! 
    @IBOutlet weak var greenSlider: UISlider! 
    @IBOutlet weak var blueSlider: UISlider! 
    //Labels 
    @IBOutlet weak var redLabel: UILabel! 
    @IBOutlet weak var greenLabel: UILabel! 
    @IBOutlet weak var blueLabel: UILabel! 
    //View 
    @IBOutlet weak var colorView: UIView! 

    //set the thumb image 
    func changeThumbImage() { 
     let redThumb = UIImage(named: "RedSmall") 
     redSlider?.setThumbImage(redThumb, forState: .Normal) 
     let greenThumb = UIImage(named: "GreenSmall") 
     greenSlider?.setThumbImage(greenThumb, forState: .Normal) 
     let blueThumb = UIImage(named: "BlueSmall") 
     blueSlider?.setThumbImage(blueThumb, forState: .Normal) 
    } 

    //VIEW DID LOAD 
    override func viewDidLoad() { 
     super.viewDidLoad() 
     changeThumbImage() 
     updateBackgroundColor() 
     colorView.backgroundColor! = UIColor(red: 226, green: 67, blue: 67, alpha: 1) 
    } 

    func colorValues() { 
     //assign the Int value to the labels 
     redLabel?.text = String(stringInterpolationSegment: Int(redSlider.value * 255)) 
     greenLabel?.text = String(stringInterpolationSegment: Int(greenSlider.value * 255)) 
     blueLabel?.text = String(stringInterpolationSegment: Int(blueSlider.value * 255)) 
    } 

    @IBAction func updateBackgroundColor() { 
     colorValues() 
     //safe unwrap the sliders and assign the view color 
     if let red = redSlider, green = greenSlider, blue = blueSlider{ 
      let redValue = CGFloat(red.value) 
      let greenValue = CGFloat(green.value) 
      let blueValue = CGFloat(blue.value) 

      colorView.backgroundColor = UIColor(red: redValue, green: greenValue, blue: blueValue, alpha: 1) 
     } 

    } 


} 

ответ

3

Вы должны разделить значение цвета с 255

UIColor(red: 226/255.0, green: 67/255.0, blue: 67/255.0, alpha: 1.0) 

С вашей акции также:

@IBAction func updateBackgroundColor() { 
    colorValues() 
    let redValue = CGFloat(redSlider.value) 
    let greenValue = CGFloat(greenSlider.value) 
    let blueValue = CGFloat(blueSlider.value) 

    colorView.backgroundColor = UIColor(red: redValue/255.0, green: greenValue/255.0, blue: blueValue/255.0, alpha: 1.0) 
} 

Я создал образец:

@IBOutlet var colorView: UIView! 
@IBAction func chageSlider(sender: UISlider!) { 
    println(sender.value) 
    self.colorView.backgroundColor = UIColor(red: CGFloat(sender.value)/255.0, green: 0.0, blue: 0.0, alpha: 1.0) 
} 

changeSlider является valueChanged действия UISlider

Подключите слайдер с @IBAction

enter image description here

Надеется, что это помогает.

+0

Я пробовал это, но это не сработало:/ – Pixele9

+0

Теперь вид черный, и он не изменится, даже если я переместил ползунки, чтобы изменить цвет – Pixele9

+0

@ Pixele9 добавил один образец и его работу для меня. надеюсь, это поможет вам. используйте действие/событие valueChanged для ползунка. –

Смежные вопросы