#ios #swift
Вопрос:
У меня есть этот индикатор выполнения, который отлично работает, когда язык-LTR. Но начинает двигаться назад, а затем вперед, когда язык RTL.
func AnimateTimerPath(inViewController vc:UIViewController,Duration:TimeInterval){
DispatchQueue.main.asyncAfter(deadline: .now() 0.1) {
self.BarAnimation = UIViewPropertyAnimator.init(duration: Duration, curve: .linear) {
self.ProgressBar.setProgress(1, animated: true)
self.ProgressBar.layoutIfNeeded()
}
self.BarAnimation.startAnimation()
}
}
private func BuildTimeBar(inViewController vc:UIViewController){
ProgressBar.frame = CGRect(x: .zero, y: .zero,
width: vc.view.frame.width-40, height: 4)
ProgressBar.trackTintColor = .lightGray
ProgressBar.progressTintColor = .white
ProgressBar.center = CGPoint(x: vc.view.frame.midX, y: 80)
ProgressBar.setProgress(0, animated: false)
ProgressBar.progressViewStyle = .default
if Locale.preferredLanguages[0] == "he" || Locale.preferredLanguages[0] == "ar"{
self.ProgressBar.transform = .identity.rotated(by: .pi)
}
vc.view.addSubview(ProgressBar)
}
Я использую UIViewPropertyAnimator
для приостановки анимации в середине. Это сработало, используя UIView.animate
Комментарии:
1. установите себя. ProgressBar.semanticContentAttribute = .forceLeftToRight и удалить преобразование