因公司接入螢石云攝像頭,參考了螢石云視頻的UI界面, 在開發(fā)過程中覺得時(shí)間選擇尺比較有意思, 于是單獨(dú)拿出來做個(gè)記錄。
效果

滑動(dòng)gif.gif

縮放gif.gif
注意點(diǎn)
- 縮放時(shí)根據(jù)當(dāng)前尺子寬度繪制不同級(jí)別的刻度
- 計(jì)算時(shí)間標(biāo)記是否需要顯示, 當(dāng)時(shí)間Text排不開的時(shí)候只顯示小時(shí)或者每四個(gè)小時(shí)顯示一個(gè)時(shí)間
- 縮放的時(shí)候始終保持選中的時(shí)間處于中心位置, 所以需要在縮放的過程同時(shí)改變
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