Панель UIprogressview с использованием нескольких цветов в зависимости от прогресса и состояния - PullRequest
0 голосов
/ 17 октября 2019

В настоящее время я работаю над приложением для iOS на основе викторины. Я хотел добавить индикатор выполнения, который менял цвета в зависимости от того, был ли на вопрос правильный или неправильный ответ. Исходя из того, ответили правильно или неправильно, я хочу, чтобы только этот интервал изменился на зеленый / красный, а не весь бар. У меня есть 50 интервалов для индикатора выполнения. Все, что я пробовал, привело к тому, что вся полоса меняла цвет, а не только интервал. Я все еще плохо знаком с разработкой для iOS и пытаюсь это выяснить.

let progress = Progress(totalUnitCount: 50)

challengeProgressBar.progress = 0.0
progress.completedUnitCount = 0

for i in 0..<index {
    progress.completedUnitCount += 1 
    challengeProgressBar.setProgress(Float(self.progress.fractionCompleted), animated: true)

    if (selectedAnswer[i] == Answers[i]){
        challengeProgressBar.progressTintColor = UIColor.green
    } else {
        challengeProgressBar.progressTintColor = UIColor.red
    }
}

Результат, который я получаю, - это самый последний цвет, созданный циклом. Весь бар красный или зеленый.

1 Ответ

0 голосов
/ 17 октября 2019

С UIProgressView вы можете изменить цвет только для заполненной части представления и цвет для незаполненной части.

Вам необходимо создать пользовательский индикатор выполнения, унаследовав UIView / UIControl. Таким образом, вы можете достичь желаемого для вас результата.

...