网上找了一下可以上下滑动的UISlider,可惜没有找到,自己写一个记录一下
先放上效果图
// MARK: - 配置 UI 视图
extension allOverflowView {
private func setUpAllView() {
self.allTopBgView=UIView.jf_createView(bgClor:kClear, supView:self, closure: { (make)in
make.left.right.top.equalTo(0)
make.height.equalTo(Adapt(25))
})
self.allStatusView=UIView.jf_createView(bgClor:kpassagewayColor, supView:self.allTopBgView, closure: { (make)in
make.width.height.equalTo(Adapt(5))
make.left.equalTo(Adapt(4))
make.centerY.equalTo(self.allTopBgView.snp.centerY)
})
self.allStatusView.layer.cornerRadius=Adapt(5/2)
self.allStatusView.layer.masksToBounds = true
self.allTitleLabel=UIView.jf_createLabel(text:"总增益", textColor:kWhite, font:FontSize(9), textAlignment: .left, supView:self.allTopBgView, closure: { (make)in
make.left.equalTo(self.allStatusView.snp.right).offset(Adapt(3))
make.height.equalTo(self.allTopBgView.snp.height)
make.right.equalTo(self.allTopBgView.snp.right)
make.centerY.equalTo(self.allTopBgView.snp.centerY)
})
self.allCgView = CGView()
self.allCgView.backgroundColor = kClear
self.addSubview(self.allCgView)
self.allCgView.snp.makeConstraints{ (make)in
make.width.height.equalTo(Adapt(20))
make.bottom.equalTo(Adapt(-4))
make.centerX.equalTo(self.snp.centerX)
}
self.allLabel=UIView.jf_createLabel(text:"90", textColor:kpassagewayColor, font:FontSize(7), textAlignment: .center, supView:self.allCgView, closure: { (make)in
make.edges.equalTo(0)
})
self.allSliderBgView=UIView.jf_createView(bgClor:kClear, supView:self, closure: { (make)in
make.height.equalTo(Adapt(4))
make.width.equalTo(Adapt(100))
make.centerX.equalTo(self.snp.centerX)
make.centerY.equalTo(self.snp.centerY)
})
self.allSliderBgView.transform = CGAffineTransform(rotationAngle: -CGFloat.pi / 2)
self.allSlider=UISlider.init()
self.allSliderBgView.addSubview(self.allSlider)
self.allSlider.backgroundColor = kClear
self.allSlider.snp.makeConstraints{ (make)in
make.edges.equalTo(0)
}
self.allSlider.minimumValue=0
self.allSlider.maximumValue=100
self.allSlider.setValue(60, animated:true)//带动画
self.allSlider.isContinuous=false
self.allSlider.maximumTrackTintColor = kBlack // 边槽的颜色
self.allSlider.setThumbImage(UIImage.init(named:"overflow_sliderBtnNew"), for: .normal)
jf_setUpGradientLayer(view:self.allSlider.subviews[1], frame:CGRect(x:0,y:0,width:self.allSlider.frame.size.width,height:self.allSlider.frame.size.height), color:kGradientColors)// 设置渲染
}
}
// MARK: - Action
extension allOverflowView {
private func clickAction() {
self.allSlider.rx.value.asObservable()
.subscribe(onNext: {
self.allLabel.text=String(Int($0))
})
.disposed(by:disposeBag)
}
}
网友评论