UIProgressView прогрессирует в обратном направлении

#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 и удалить преобразование