因公司接入螢石云攝像頭,參考了螢石云視頻的UI界面, 在開發(fā)過程中覺得時間選擇尺比較有意思, 于是單獨拿出來做個記錄。
效果
注意點
- 縮放時根據(jù)當(dāng)前尺子寬度繪制不同級別的刻度
- 計算時間標(biāo)記是否需要顯示, 當(dāng)時間Text排不開的時候只顯示小時或者每四個小時顯示一個時間
- 縮放的時候始終保持選中的時間處于中心位置, 所以需要在縮放的過程同時改變
ScrollView
的contentOffset
值
private func contentOffset(current: Int) -> CGPoint{
let proportion: CGFloat = CGFloat(integerLiteral: current) / (24 * 3600.0)
let proportionWidth: CGFloat = (scrollView!.contentSize.width - sideOffset * 2) * proportion
return CGPoint.init(x: proportionWidth - scrollView!.contentInset.left, y: scrollView!.contentOffset.y)
}
Demo: TimeRuler-Swift-github