Swift 4 обратного изменения высоты UIView - PullRequest
0 голосов
/ 15 декабря 2018

Я хотел бы построить индикатор прогресса.Я взял прямоугольный вид (progressBarBckgr) и поставил перед ним еще один (progressBar).

Тот, что находится впереди, должен увеличить свою высоту, добавив правильный ответ в приложении викторины.

 func updateUI () {
        let numberOfAllQuestions = allQuestion.questionList.count
        print(numberOfAllQuestions) //prints 3


        let progressBarBckgrHeight = progressBarBckgr.frame.size.height
        let progressBarBckgrHeightInt = Int(progressBarBckgrHeight)
        let progressBarBckgrHeightPiece = progressBarBckgrHeightInt / numberOfAllQuestions

        progressBarOutlet.frame.size.height = (progressBarBckgr.frame.height) +  CGFloat (progressBarBckgrHeightPiece)      
    }

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

Пример.за 1/10

В дополнение к этому я хотел бы увеличить планку снизу вверх.Когда я вхожу в высоту свойства, чтобы увеличить ее, она только увеличивается в направлении дна.Есть хороший поворотный трюк?

Спасибо !!!

1 Ответ

0 голосов
/ 15 декабря 2018

Вам также нужно переместить вид на величину, которую вы увеличили (progressBarBckgrHeightPiece)

Кроме того, вы должны установить frame напрямую.

progressBarOutlet.frame = CGRect(x: progressBarOutlet.frame.origin.x,
                                 y: progressBarOutlet.frame.origin.y - progressBarBckgrHeightPiece, // Notice here
                                 width: progressBarOutlet.frame.width,
                                 height: progressBarOutlet.frame.height + CGFloat(progressBarBckgrHeightPiece))
...