2016-07-08 2 views
1

Я использую SnappingSlider. Я хочу использовать два экземпляра слайдера и иметь возможность изменять разные значения в зависимости от используемого слайдера.Swift/SnappingSlider/два экземпляра слайдера

Это мой текущий код:

import UIKit 
import SnappingSlider 

class ViewController: UIViewController, SnappingSliderDelegate { 

private var remainingTime:Double = 0 
private let remainingTimeLabel:UILabel = UILabel(frame: CGRectZero) 
private let remainingTimeSlider:SnappingSlider = SnappingSlider(frame: CGRectMake(0.0, 0.0, 10.0, 10.0), title: "Slide Me") 
private let percentageSlider:SnappingSlider = SnappingSlider(frame: CGRectMake(0.0, 0.0, 10.0, 10.0), title: "Slide Me") 

override func viewDidLoad() { 
    super.viewDidLoad() 
    remainingTimeLabel.frame = CGRectMake(0.0, 0.0, self.view.bounds.size.width * 0.5, 80.0) 
    remainingTimeLabel.center = CGPointMake(self.view.bounds.size.width * 0.5, self.view.bounds.size.height * 0.21 - remainingTimeLabel.bounds.size.height * 0.75) 
    remainingTimeLabel.font = UIFont(name: "TrebuchetMS-Bold", size: 25.0) 
    remainingTimeLabel.textColor = UIColor.lightGrayColor() 
    remainingTimeLabel.textAlignment = NSTextAlignment.Center 
    remainingTimeLabel.text = "\(remainingTime)" 
    self.view.addSubview(remainingTimeLabel) 

    remainingTimeSlider.delegate = self 
    remainingTimeSlider.frame = CGRectMake(0.0, 0.0, self.view.bounds.size.width * 0.9, 50.0) 
    remainingTimeSlider.center = CGPointMake(self.view.bounds.size.width * 0.5, self.view.bounds.size.height * 0.2) 
    self.view.addSubview(remainingTimeSlider) 

    percentageSlider.delegate = self 
    percentageSlider.frame = CGRectMake(0.0, 0.0, self.view.bounds.size.width * 0.9, 50.0) 
    percentageSlider.center = CGPointMake(self.view.bounds.size.width * 0.5, self.view.bounds.size.height * 0.4) 
    self.view.addSubview(percentageSlider) 
} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 

func snappingSliderDidIncrementValue(slider: SnappingSlider) { 

    remainingTime += 0.5 
    remainingTimeLabel.text = "\(remainingTime)" 
} 

func snappingSliderDidDecrementValue(slider: SnappingSlider) { 

    remainingTime = max(0, remainingTime - 0.5) 
    remainingTimeLabel.text = "\(remainingTime)" 
} 


} 

Я хочу сделать что-то вроде этого:

func snappingSliderDidIncrementValue(slider: SnappingSlider) { 

if slider == sliderA { 
    remainingTime += 0.5 
    remainingTimeLabel.text = "\(remainingTime)" 
} else if slider == sliderB { 
    integerXY = += 0.5 
    labelXY.text = "\(remainingTime)" 
} 

меня отправить автору Slider по электронной почте и получил follwing текст обратно: Вы может установить один объект для работы в качестве делегата для нескольких экземпляров ползунка. Таким образом, вы должны установить свойство .delegate ползунков как любой объект, который вы соответствуете делегату, а затем вы проверите внутри обратных вызовов делегатов точно, как вы показали снизу.

Но я не понимаю ... Помощь очень ценится.

Edit:

enter image description here

+0

Ваш код выглядит в основном правильно. Однако вам нужно подставить правильные имена для ваших слайдеров и ярлыков. – vacawama

+0

@vacawama см. Редактирование, пожалуйста ... спасибо за вашу помощь –

ответ

1

Вам нужно сделать что-то вроде этого:

func snappingSliderDidIncrementValue(slider: SnappingSlider) { 
    if slider == remainingTimeSlider { 
     remainingTime += 0.5 
     remainingTimeLabel.text = "\(remainingTime)" 
    } 
    else if slider == percentageSlider { 
     // do something for this slider 
    } 
} 
+0

что сделал !!!! Огромное спасибо –

+0

Рад, что я мог бы помочь. Наслаждайтесь Сиэтлом, штат Вашингтон. Раньше я жил в WA (это WA от моего имени VA-CA-WA-MA). – vacawama

+0

спасибо. я буду :) спасибо за вашу помощь снова ... застрял на этом некоторое время –

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