import UIKit
class LineView: UIView, XibViewProtocol {
@IBOutlet var contentView: UIView!
@IBOutlet var widthC: NSLayoutConstraint!
private var timer: DispatchSourceTimer?
override init(frame: CGRect) {
super.init(frame: frame)
loadNib()
}
required init?(coder: NSCoder) {
super.init(coder: coder)
loadNib()
}
override func awakeFromNib() {
super.awakeFromNib()
}
private func setTimer(){
timer?.setEventHandler {[weak self] in
guard let `self` = self else {
return
}
self.seconds -= 0.1
print("seconds = == == = \(self.seconds)")
if self.seconds < 0 {
self.timer?.cancel()
self.widthC.constant = 0.0
print("secondsOVER!!!!!!")
} else {
UIView.animate(withDuration: 0.1) {
self.widthC.constant += (self.bounds.size.width / self.total) * 0.1
self.layoutIfNeeded()
}
}
}
}
private var seconds: TimeInterval = 0.0
private var total: TimeInterval = 1.0
@objc public func startAnimate(time: TimeInterval){
timer?.cancel()
timer = nil
self.widthC.constant = 0.0
timer = DispatchSource.makeTimerSource(flags: [], queue: DispatchQueue.main)
total = time
seconds = time
timer?.schedule(deadline: .now(),repeating: 0.1)
setTimer()
timer?.resume()
}
}
LineView Animation
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 还可以参考这篇:http://www.cnblogs.com/shenfangfang/p/5713564.htm...
- 概念 Dopesheet 上一次说到我们可以通过Animation窗口创建Animation Clip,其中比较重...
- 000 属性动画简介 属性动画是 Android API level 11(Android 3.0)中添加的动画框...
- View Animation 你可以使用视图动画系统在视图上执行补间动画。Tween动画使用诸如动画的起始点,终点...
- 本系列文档参考苹果官文:Core Animation Programming Guide还包括下面一系列文章: C...