【问题标题】:Swift - UIProgressView fills diagonallySwift - UIProgressView 对角填充
【发布时间】:2015-07-16 11:55:17
【问题描述】:

所以我设置了一个 UIProgressView 在 3 秒后填充,并稍微增加了条的高度。但是,当它填满时,它会沿对角线填充,而不是仅从一侧填充到另一侧。该栏从右上角开始,然后在结束之前扩展以填充进度视图。

这是我正在使用的代码:

import UIKit

class LoadingScreen: UIViewController {


    @IBOutlet weak var progressView: UIProgressView!


    override func viewDidLoad() {
        super.viewDidLoad()

        UIView.animateWithDuration(3, animations: { () -> Void in
            self.progressView.setProgress(1.0, animated: true)
        })

        progressView.transform = CGAffineTransformScale(progressView.transform, 1, 10)

}


}

以下是一些截图:

【问题讨论】:

  • 您到底想要发生什么?
  • 这只是一个猜测,但你能不能把你的progressView.transform = CGAffineTransformScale(progressView.transform, 1, 10)放在动画之前!
  • @JuanCarlosOspinaGonzalez 我只希望白色位从一侧开始,就像一个进度条,它将在 3 秒内从 0 变为 1.0
  • @DevAndArtist 遗憾的是没有变化...
  • 好的,我自己测试过,我可以确认你的行为。我想您可以自己构建某种进度条。例如,您可以使用一些自动布局约束并修改 .constant。这只是一个 UIView,你需要稍微拉伸一下。 ;)

标签: ios swift uiprogressview uiprogressbar


【解决方案1】:

来得比较晚,但我刚刚经历了这一点,并通过将我的 progressView 样式更改为 .Bar 来修复它。希望对您有所帮助!

let progressView = UIProgressView(progressViewStyle: .Bar)

【讨论】:

    【解决方案2】:

    progressView 的大小好像不对。

    尝试将这些代码放入viewDidLayoutSubviews:

    override func viewDidLayoutSubviews() {
        super.viewDidLayoutSubviews()
    
        UIView.animateWithDuration(3, animations: { () -> Void in
            self.progressView.setProgress(1.0, animated: true)
        })
    
        progressView.transform = CGAffineTransformScale(progressView.transform, 1, 10)
    }
    

    【讨论】:

    • 只是把它放进去,但它没有用。做了同样的事情。我认为这可能与使用 .animateWithDuration 有关,默认情况下它似乎是对角线动画。还有其他想法或解决方法吗? - 对不起,我对这一切真的很陌生:P
    猜你喜欢
    • 2015-12-08
    • 2019-04-09
    • 2014-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-15
    • 1970-01-01
    相关资源
    最近更新 更多