Swift 4 反向改变一个UIView的高度

Swift 4 reverse change height of a UIView

我想建立一个进度条。我取了一个矩形视图(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)      
    }

因此,每点击一个正确的答案,进度条就会增加,直到测验结束时,整个背景进度条都会被覆盖。

示例: 10 个问题 -> 单击答案填充会增加进度条的高度 1/10

除此之外,我想增加从底部到顶部的栏。当我输入 属性 高度来增加它时,它只会在底部方向变大。有什么好的转机技巧吗?

谢谢!!!

您还需要将视图向上移动您增加的高度 (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))