2016-01-30 3 views
0

Ошибка"использование неразрешенного идентификатора" СВИФТ

использование неразрешенного идентификатора 'слайдер'

приходит, где он говорит

вар sliderValue = slider.value

В чем проблема?

import UIKit 

    class ViewController: UIViewController { 

     @IBAction func colorChanger(sender: UISlider) { 
      // creates variable to hold new color 
      var newBackgroundColor : UIColor 

      // creates variable holding the value from slider 
      var sliderValue = slider.value 

      // changes the newBackgroundColor variable to new color values. 
      newBackgroundColor = UIColor(hue: sliderValue, saturation: 0.5, brightness: 0.5, alpha: 0.5) 

      // changes the background color 
      self.view.backgroundColor = newBackgroundColor } 
+1

Try 'view.backgroundColor = UIColor (Оттенок: CGFloat (sender.value) ....' –

+0

... или '@IBAction функ ColorChanger (слайдер: UISlider)' – vadian

+0

@vadian изменения имени отправителя параметр для слайдера - это не очень хорошая идея. –

ответ

1

Вы не имеют slider свойство, определенное в коде, насколько я (или Swift ;-)) может видеть.

Вместо этого у вас есть параметр sender в вашем методе, который является UISlider, поэтому попробуйте использовать это вместо этого.

var sliderValue = sender.value 

или

переименовывать sender в slider

Так вот один из способов сделать это (с некоторой помощью @ ЛЕО-dabus). Я взял на себя смелость очистки вы код немного слишком, извините :-)

import UIKit 

class ViewController: UIViewController { 

@IBAction func colorChanger(sender: UISlider) { 
    // creates variable holding the value from slider 
    let sliderValue = CGFloat(sender.value) 

    // changes the newBackgroundColor variable to new color values. 
    let newBackgroundColor = UIColor(hue: sliderValue, saturation: 0.5, brightness: 0.5, alpha: 0.5) 

    // changes the background color 
    view.backgroundColor = newBackgroundColor  
} 
+0

Свойство значения UISlider возвращает значение Float https://developer.apple.com/library/ios/documentation/UIKit/Reference/UISlider_Class/#//apple_ref/occ/instp/UISlider/value. Инициализатор UIColor требует CGFloat –

+0

Вы правы @LeoDabus. Я не был перед Xcode, поэтому я сделал предположение. Благодарю. Я изменил код. – pbodsk

0

Я получил решение для Вашего вопроса

Первый крюк вверх слайдер

@IBOutlet var slider: UISlider! 

Затем установите минимальное , максимальное и текущее значение, которое вы хотите в раскадровке или xib или программно

let sliderValue = Int(slider.value) 
print("Slider value is now - \(sliderValue)") 

Выход

Slider value is now - 6 
Смежные вопросы