美文网首页
Swift4.0--一个好用的金融类游标卡尺

Swift4.0--一个好用的金融类游标卡尺

作者: 青苹果园 | 来源:发表于2018-02-07 13:41 被阅读141次

    Swift--一个好用的金融类游标卡尺

    思路:

    使用UICollectionView制作一个游标卡尺,每一个cell代表一个刻度区间,每个区间间隔值、区间分割份数和卡尺样式等都是可设置的。通过代理协议,监听卡尺的滚动值,设置卡尺的显示值等等。也可以设置默认最大可用金额,当用户滚动卡尺超过最大可用金额时自动回滚等(自己项目中使用到)。github

    效果图

    卡尺效果图1
    卡尺效果图2

    初始化方法如下:

    /// 游标卡尺
    ///
    /// - Parameters:
    ///   - frame: 卡尺大小
    ///   - min: 卡尺最小值
    ///   - max: 卡尺最大值
    ///   - part: 每个区被分割的分数
    ///   - step: 一个区间的大小,默认1000
    ///   - unit: 单位
    ///   - numFontSize: 数值文字大小
    ///   - endNum: 最大有效值
    ///   - endText: 最大有效值文案
    ///   - endTextColor: 最大有效值文案颜色
    ///   - endtextFontSize: 最大有效值文案字体大小
    ///   - strokeColor: 卡尺颜色
    public init(frame: CGRect, strokeColor: UIColor, middleLineColor: UIColor, min: CGFloat, max: CGFloat, part: Int = default, step: Int = default, unit: String = default, numFontSize: CGFloat, endNum: CGFloat, endText: String, endTextColor: UIColor, endtextFontSize: CGFloat)
    

    如果是网络请求返回的数值,需要实时更新卡尺的,可调用

    /// 更新游标卡尺
    ///
    /// - Parameters:
    ///   - min: 卡尺最小值
    ///   - max: 卡尺最大值
    ///   - part: 每个区被分割的分数
    ///   - step: 一个区间的大小,默认1000
    ///   - unit: 单位
    ///   - numFontSize: 数值文字大小
    ///   - endNum: 最大有效值
    ///   - endText: 最大有效值文案
    ///   - endTextColor: 最大有效值文案颜色
    ///   - endtextFontSize: 最大有效值文案字体大小
    internal func reloadRulerView(min: CGFloat, max: CGFloat, part: Int = default, step: Int = default, unit: String = default, numFontSize: CGFloat, endNum: CGFloat, endText: String, endTextColor: UIColor, endtextFontSize: CGFloat)
    

    设置卡尺的位置方法

    /// 设置卡尺显示值
    ///
    /// - Parameter endN: 指定的值
    public func scrollToEndNumber(endN: CGFloat, animated: Bool = default)
    

    卡尺交互协议

    /// 滚动时,返回当前值
    ///
    /// - Parameters:
    ///   - value: 当前值
    internal func scrollViewDidScroll(value: CGFloat)
    
    /// 尺子即将被拖拽
    ///
    /// - Parameter value: 当前值
    internal func scrollViewWillBeginDragging(value: CGFloat)
    
    /// 尺子停止滚动协议
    ///
    /// - Parameter value: 停止滚动值
    internal func scrollViewDidEndDragging(value: CGFloat)
    
    /// 尺子滚动动画停止协议
    ///
    /// - Parameter value: 停止滚动值
    internal func scrollViewDidEndScrollingAnimation(value: CGFloat)
    

    代码请移步github

    相关文章

      网友评论

          本文标题:Swift4.0--一个好用的金融类游标卡尺

          本文链接:https://www.haomeiwen.com/subject/lfmozxtx.html