Swift - UIProgressView 对角填充

Posted

技术标签:

【中文标题】Swift - UIProgressView 对角填充【英文标题】:Swift - UIProgressView fills diagonally 【发布时间】: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,你需要稍微拉伸一下。 ;) 【参考方案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

以上是关于Swift - UIProgressView 对角填充的主要内容,如果未能解决你的问题,请参考以下文章

使用 Core Data 在 Swift 中通过 UIProgressView 异步插入数据

创建一个 UIProgressView 在 3 秒内从 0.0(空)变为 1.0(满)

在 Swift 中绘制对角线

UIProgressView和UISlider

UIProgressView 未处理的颜色

UIProgressView 约束问题