您现在的位置是:首页 > 文章详情

UISlider自定义滑动条高度(swift)

日期:2018-04-03点击:807

UISlider滑动条的高度系统默认给我们设定了,没有办法进行改变。可是,我们的设计又是需要改变这个高度的,怎么办呢?这个时候,我们可以写一个UISlider的子类,重写四个方法就能实现了。

// // CustomSlider.swift // CustomSlider // // Created by iOS on 2018/4/4. // Copyright © 2018年 weiman. All rights reserved. // import UIKit class CustomSlider: UISlider { var height: CGFloat = 0.0 override func minimumValueImageRect(forBounds bounds: CGRect) -> CGRect { return self.bounds } override func maximumValueImageRect(forBounds bounds: CGRect) -> CGRect { return self.bounds } // 控制slider的宽和高,这个方法才是真正的改变slider滑道的高的 override func trackRect(forBounds bounds: CGRect) -> CGRect { let rect = super.trackRect(forBounds: bounds) return CGRect.init(x: rect.origin.x, y: (bounds.size.height-height)/2, width: bounds.size.width, height: height) } // 改变滑块的触摸范围 override func thumbRect(forBounds bounds: CGRect, trackRect rect: CGRect, value: Float) -> CGRect { return super.thumbRect(forBounds: bounds, trackRect: rect, value: value) } } 

使用:

lazy var slider: CustomSlider = { $0.setThumbImage(#imageLiteral(resourceName: "sliderThumbImage"), for: .normal) $0.height = 5 //设置高度 $0.maximumTrackTintColor = .clear $0.minimumTrackTintColor = UIColor(red: 174/255.0, green: 119/255.0, blue: 255/255.0, alpha: 1.0) $0.addTarget(self, action: #selector(sliderTouchDown(slider:)), for: .touchDown) $0.addTarget(self, action: #selector(sliderEnd(slider:)), for: .touchUpInside) return $0 }( CustomSlider() ) 

效果:

img_21389d038431493c9465aef74960d0d4.png
image.png
原文链接:https://yq.aliyun.com/articles/655234
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章