2016-03-13 2 views
0

Я использую базу под названием EFCircularSlider и успешно импортировали Objective-C файлы и теперь у меня возникли проблемы, реализующий эту строку кода в Swift:Создать действие изменения значения в пользовательских слайдера

[slider addTarget:self action:@selector(newValue:) forControlEvents:UIControlEventValueChanged]; 

Вот мой код для кругового слайдера.

@IBOutlet var currentValueLabel: UILabel! 

override func viewDidLoad() { 
    super.viewDidLoad() 
    let sliderFrame = CGRectMake(110, 150, 100, 100) 
    let circularSlider = EFCircularSlider(frame: sliderFrame) 
    self.view.addSubview(circularSlider) 
} 

Я не могу заставить его работать так, как я пытался записать его в Swift. Я пытался писать об этом так:

slider.addTarget(self, action: "newValue:", forControlEvents: UIControlEvents.ValueChanged) 

Вот как говорят, будет осуществляться (https://github.com/eliotfowler/EFCircularSlider): enter image description here

+0

Что не работает? Вы получаете сообщение об ошибке или 'newValue (_ :)' не вызывается? – Eendje

ответ

1

Вы должны использовать Selector в Swift, так как это:

slider.addTarget(self, action: Selector("newValue:"), forControlEvents: UIControlEvents.ValueChanged) 

Вот вся viewDidLoad()

override func viewDidLoad() { 
    super.viewDidLoad() 
    let sliderFrame = CGRectMake(110, 150, 100, 100) 
    let circularSlider = EFCircularSlider(frame: sliderFrame) 
    circularSlider.addTarget(self, action: Selector("newValue:"), forControlEvents: UIControlEvents.ValueChanged) 
    self.view.addSubview(circularSlider) 
} 

Убедитесь, что вы применяете метод newValue. Что-то вроде этого

func newValue(slider: EFCircularSlider) { 
    // Do you stuff here 
} 
+0

В нем говорится, что «слайдер» - это неразрешенный идентификатор. Не работает, когда я меняю его на roundSlider. Либо (получает сбой). –

+0

Ну, в вашем случае это 'circleSlider' –

+0

Я добавил весь' viewDidLoad' для вашего дела –

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

  • Нет связанных вопросов^_^