Swift4.0--一個好用的金融類遊標卡尺
Swift--一個好用的金融類遊標卡尺
思路:
使用UICollectionView製作一個遊標卡尺,每一個cell代表一個刻度區間,每個區間間隔值、區間分割份數和卡尺樣式等都是可設定的。通過代理協議,監聽卡尺的滾動值,設定卡尺的顯示值等等。也可以設定預設最大可用金額,當使用者滾動卡尺超過最大可用金額時自動回滾等(自己專案中使用到)。github
效果圖
初始化方法如下:
/// 遊標卡尺
///
/// - 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)
相關文章
- 一句話概括:需要拿著遊標卡尺學習的語言
- 一維卡尺邊緣對
- 介紹幾個好用的工具類
- 三個好用的併發工具類
- 工具篇:介紹幾個好用的guava工具類Guava
- 一個免費好用的魔法
- 牌類遊戲使用微服務重構筆記(一): 先定個小目標遊戲微服務筆記
- 推薦一個好用的以多tab標籤方式開啟windows CMD的工具Windows
- 一個好用的畫圖工具 excalidraw
- 推薦一個好用的網站網站
- Kotlin 一個好用的新功能:ParcelizeKotlin
- 使用css的attr()寫一個類似a標籤title的提示框CSS
- clover 一個windows 多個視窗集中在一個介面類似google的多標籤功能軟體WindowsGo
- Hutool—好用的 Java 工具類庫Java
- 好用的java.util.Objects類JavaObject
- 推薦一個好用的.net開發框架框架
- python 介紹一個很好用的函式Python函式
- 每天分享一個好用的Python庫-difflibPython
- 每天分享一個好用的Python庫-PrettytablePython
- 每天分享一個好用的Python庫-ColoramaPython
- 分享一個好用的線上工具箱
- 每天分享一個好用的Python庫-pyfigletPython
- 每天分享一個好用的Python庫-shortuuidPythonUI
- 每天分享一個好用的Python庫-xpinyinPython
- 每天分享一個好用的Python庫-esmrePython
- 每天分享一個好用的Python庫-LevenshteinPython
- SwiftyPhotos 一個非常好用的PhotoKit框架介面Swift框架
- 一文看懂App Annie、TalkingData、SensorTower對遊戲產品的分類標準APP遊戲
- Model類的一個return作用
- 一個Java類的載入Java
- 一個好用的支援多種方式翻譯的包
- 一個準金融系統的“全面上雲”之旅
- 介紹一個好用的 Laravel Menu 建構包Laravel
- 一個好用的SAP ABAP工作程式跟蹤工具
- 一個簡單好用的java增量更新工具Java
- 推薦一個好用的資料庫SDK—deepsql資料庫SQL
- 【Mac】iTerm2 一個更好用的終端Mac
- .NET CORE AUTOMAPPER 對映一個類的子類APP
- 智慧金融的破局(上):智慧金融的本質是標準件化