SHMultiSlider 0.4.1

SHMultiSlider 0.4.1

Rex Wang维护。



  • Rex Wang

SHMultiSlider

适用于 macOS 的具有两个滑块的旋转旋钮,适用于显示值和范围选择。

如图所示,当移动两个滑块时,输出值将映射到新范围。

安装

SHMultiSlider 使用 Swift 4.2 编写,因此由于当前的二进制兼容性限制,您的代码必须使用 Swift 4.x 编写。

CocoaPods

要使用 CocoaPods,请将 SHMIDIKit 添加到您的 Podfile

pod 'SHMultiSlider'

然后运行 pod install

注意:如果你想在故事板中使用它,请将以下行添加到你的Podfile

use_frameworks!

示例

import SHMultiSlider

class ViewController: NSViewController, SHMultiSliderDelegate {

    override func viewDidLoad() {
        super.viewDidLoad()
        let multislider = SHMultiSlider(frame: NSRect(x: 0, y: 0, width: 100, height: 100))
        self.view.addSubview(slider)
        // IMPORTANT! Set delegate to self, otherwise you won't get any callback
        multislider.delegate = self
        // Set slider value
        multislider.setValue(100)
        // Change the text for the label on top
        multislider.sourceName = "LFO"
        // Change the text for the label on bottom
        multislider.targetName = "Pan"
        
        // Set lowerbound of output value, output will be remapped to new range
        multislider.slider.setLowerBoundValue(0)
        // Set upperbound of output value, output will be remapped to new range
        multislider.setUpperBoundValue(100)
        
        // Set input value range
        multislider.min = 0
        multislider.max = 100
        
        
        /// Implement delegate methods
        
        // value change callback
        func valueChanged(_ sender: SHMultiSlider?, _ newValue: Int) {
            print(sender?.identifier, newValue)
        }
        // boundsChangeCallback
        func boundsUpdated(_ sender: SHMultiSlider?, lower: Int, upper: Int) {
            print((lower, upper))
        }
    }
}

注意:始终确保多滑块的长度 ≥ 100,过短可能会导致显示不正常。

文档