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))
}
}
}