UISlider自定义滑动条高度(swift)
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() )
效果:

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
[译]RabbitMQ教程C#版 - 工作队列
先决条件 本教程假定RabbitMQ已经安装,并运行在localhost标准端口(5672)。如果你使用不同的主机、端口或证书,则需要调整连接设置。 从哪里获得帮助 如果您在阅读本教程时遇到困难,可以通过邮件列表 联系我们。 工作队列 (使用.NET Client) 在第一篇教程中,我们编写了两个程序,用于从一个指定的队列发送和接收消息。在本文中,我们将创建一个工作队列,用于在多个工作线程间分发耗时的任务。 工作队列(又名:任务队列)背后的主要想法是避免立即执行资源密集型、且必须等待其完成的任务。相反的,我们把这些任务安排在稍后完成。我们可以将任务封装为消息并把它发送到队列中,在后台运行的工作进程将从队列中取出任务并最终执行。当您运行多个工作线程,这些任务将在这些工作线程之间共享。 这个概念在Web应用程序中特别有用,因为在一个HTTP请求窗口中无法处理复杂的任务。 准备 我们将略微修改上一个示例中的Send程序,以其可以在命令行发送任意消息。 这个程序将调度任务到我们的工作队列中,所以让我们把它命名为NewTask: 像 教程[1]一样,我们需要生成两个项目: dotnet new ...
- 下一篇
4月04日云栖精选夜读:阿里云MaxCompute被Forrester评为全球云端数据仓库领导者
参考消息网3月19日报道 日前,全球权威调研机构佛瑞斯特研究公司(Forrester)发布《2018年一季度云端数据仓库》报告。报告对大数据服务商的主要功能、区域表现、细分市场和典型客户等进行了全面评估,最终AWS、阿里云、谷歌、微软四大巨头杀入全球一线阵营。 热点热议 阿里云MaxCompute被Forrester评为全球云端数据仓库领导者 作者:隐林 阿里云加快技术赋能 助推人工智能新时代 作者:云攻略小攻 阿里云田丰:软件的SAAS化和SAAS软件的AI化是行业的重要趋势 作者:飞天战略营 知识整理 (Keras)基于深度学习SketchCode将线框原型图转换成HTML代码 作者:【方向】 如何走近深度学习人脸识别?你需要这篇超长综述 | 附开源代码 作者:技术小能手 手把手:用Python实现一个基于RSA算法的区块链客户端 作者:技术小能手 利用Fiddler抓取APP 作者:1181322821814908 西方在建墙,东方在修路 作者:飞天战略营 美文回顾 Java多线程学习(一)Java多线程入门 作者:一只蜗牛呀 月薪1万和5万的程序员有何区别?或许是认知边界。 作...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Windows10,CentOS7,CentOS8安装Nodejs环境
- 设置Eclipse缩进为4个空格,增强代码规范
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS8编译安装MySQL8.0.19
- CentOS关闭SELinux安全模块
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Red5直播服务器,属于Java语言的直播服务器