我正在尝试实现Range Slider,并且我使用了名为NMRangeSlider的自定义控件。
但当我使用它时,滑块根本不出现。会不会也是因为它都是用Objective-C编写的?
这就是我目前实施它的方式:
var rangeSlider = NMRangeSlider(frame: CGRectMake(16, 6, 275, 34))
rangeSlider.lowerValue = 0.54
rangeSlider.upperValue = 0.94
self.view.addSubview(rangeSlider)
4条答案
按热度按时间s5a0g9ez1#
为了创建一个定制的Range Slider,我在这里找到了一个很好的解决方案:range finder tutorial iOS 8,但我的项目在Swift 3中需要这个解决方案。我在这里为Swift 3 iOS 10更新了以下内容:
1.在您的主视图控制器中,将此代码添加到viewDidLayOut以显示范围滑块。
1.创建助手函数以将滑块输出打印到viewDidLayoutSubviews()下面
1.创建RangeSlider.swft文件,并添加如下内容:
1.接下来添加拇指层子类文件RangeSliderThumbLayer.swft,并添加如下内容:
1.最后添加轨迹层子类文件RangeSliderTrackLayer.wift,并添加以下内容:
构建、运行和获取:
6kkfgxo02#
更新:
我看不出来,因为它全是白色的。因此,解决方案不使用任何其他框架并坚持使用此框架-您需要为所有组件设置所有视图,然后它将显示得很好:
我曾尝试在SWIFT中导入它,就像我以前在Objective-C代码中使用它一样,但没有任何运气。如果我正确地设置了所有内容并将其添加到
viewDidLoad()
或viewDidAppear()
中,则不会显示任何内容。不过,有一件事值得一提--当我进入查看调试层次结构时,滑块实际上*就在画布上:但它只是没有使用我在将其添加到视图之前设置的所有颜色进行渲染。郑重声明--这是我使用的代码:
使用this question中提到的将UIView捕获为UIImage的方法:
其他解决方案:
您也可以尝试sgwilly/RangeSlider,因为它是用SWIFT编写的,因此您甚至不需要桥接头。
z5btuh9x3#
试试这个代码:
nkhmeac64#
我使用:https://github.com/Zengzhihui/RangeSlider实现了范围滑块
在GZRangeSlider类中,有一个名为:Private Func setLabelText()的方法
在这种方法中,只需放入:
要设置下标签和上标签的动画,请执行以下操作。
这个很适合我,而且是斯威夫特的。试试看..。