|
@@ -15,6 +15,7 @@ class BFIndirectionProgressView: UIView {
|
|
var themeColor: UIColor = UIColor.hexColor(hexadecimal: "#389AFF")
|
|
var themeColor: UIColor = UIColor.hexColor(hexadecimal: "#389AFF")
|
|
var progressHeight: CGFloat = 6
|
|
var progressHeight: CGFloat = 6
|
|
var tmpPercentW: CGFloat = 0
|
|
var tmpPercentW: CGFloat = 0
|
|
|
|
+ var deletedView: UIView?
|
|
var percenWidth: CGFloat {
|
|
var percenWidth: CGFloat {
|
|
get {
|
|
get {
|
|
if tmpPercentW.isNaN || tmpPercentW.isInfinite || (tmpPercentW <= 0 && totalDuration > 0) {
|
|
if tmpPercentW.isNaN || tmpPercentW.isInfinite || (tmpPercentW <= 0 && totalDuration > 0) {
|
|
@@ -55,6 +56,7 @@ class BFIndirectionProgressView: UIView {
|
|
frame.size.width = (superview as? UIScrollView)?.contentSize.width ?? 0
|
|
frame.size.width = (superview as? UIScrollView)?.contentSize.width ?? 0
|
|
self.totalDuration = totalDuration
|
|
self.totalDuration = totalDuration
|
|
self.percenWidth = percenWidth
|
|
self.percenWidth = percenWidth
|
|
|
|
+ deletedView = nil
|
|
subviews.forEach { vv in
|
|
subviews.forEach { vv in
|
|
vv.removeFromSuperview()
|
|
vv.removeFromSuperview()
|
|
}
|
|
}
|
|
@@ -81,6 +83,7 @@ class BFIndirectionProgressView: UIView {
|
|
(self?.currentItem?.frame.minX ?? 0) < sub.frame.minX && sub.frame.minX < (self?.currentItem?.frame.maxX ?? 0)
|
|
(self?.currentItem?.frame.minX ?? 0) < sub.frame.minX && sub.frame.minX < (self?.currentItem?.frame.maxX ?? 0)
|
|
}
|
|
}
|
|
if vc !== nil {
|
|
if vc !== nil {
|
|
|
|
+ deletedView = vc
|
|
vc?.removeFromSuperview()
|
|
vc?.removeFromSuperview()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -90,6 +93,7 @@ class BFIndirectionProgressView: UIView {
|
|
func detectionAndCreateItem(start: CGFloat = 0, progress: Float64) {
|
|
func detectionAndCreateItem(start: CGFloat = 0, progress: Float64) {
|
|
BFLog(message: "检测并创建item:\(start)")
|
|
BFLog(message: "检测并创建item:\(start)")
|
|
if currentItem == nil {
|
|
if currentItem == nil {
|
|
|
|
+ deletedView = nil
|
|
currentItem = detectionItem(start: start, progress: progress)
|
|
currentItem = detectionItem(start: start, progress: progress)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -132,6 +136,10 @@ class BFIndirectionProgressView: UIView {
|
|
if isCurrent {
|
|
if isCurrent {
|
|
currentItem?.removeFromSuperview()
|
|
currentItem?.removeFromSuperview()
|
|
currentItem = nil
|
|
currentItem = nil
|
|
|
|
+ if deletedView != nil {
|
|
|
|
+ addSubview(deletedView!)
|
|
|
|
+ }
|
|
|
|
+ deletedView = nil
|
|
} else {
|
|
} else {
|
|
if index >= 0, index < subviews.count {
|
|
if index >= 0, index < subviews.count {
|
|
subviews[index].removeFromSuperview()
|
|
subviews[index].removeFromSuperview()
|