Swift Progress View 动画使进度条超过 100%

     2023-03-13     80

关键词:

【中文标题】Swift Progress View 动画使进度条超过 100%【英文标题】:Swift Progress View animation makes the bar go further than 100% 【发布时间】:2017-06-06 18:52:18 【问题描述】:

当为 ProgressView 使用动画时,如果我让动画用完,它完全可以正常工作,但如果我在动画仍在运行时再次尝试运行此代码,它会将 100% 添加到当前栏并使其运行通过酒吧。图片应该更合乎逻辑地解释这种情况。

进度从 1.0 (100%) 开始:

进度已过半:

代码再次运行,导致进度超过 100%,尽管它使用了正确的时间来完成。

这是使用的代码:

self.progressView.setProgress(1.0, animated: false)
        
DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) 
  UIView.animate(withDuration: 10, delay: 0, options: [.beginFromCurrentState, .allowUserInteraction], animations:  [unowned self] in
    self.progressView.setProgress(0, animated: true)
  )

提前致谢!

【问题讨论】:

您正在运行的其余代码(在设置下一个问题时)是否有可能无意中更改了进度视图的框架或约束? 【参考方案1】:

一些快速研究...

原来UIProgressView 需要一些特殊的努力来停止当前的动画。看看这是否适合你:

    // stop any current animation
    self.progressView.layer.sublayers?.forEach  $0.removeAllAnimations() 

    // reset progressView to 100%
    self.progressView.setProgress(1.0, animated: false)

    DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) 
        // set progressView to 0%, with animated set to false
        self.progressView.setProgress(0.0, animated: false)
        // 10-second animation changing from 100% to 0%
        UIView.animate(withDuration: 10, delay: 0, options: [], animations:  [unowned self] in
            self.progressView.layoutIfNeeded()
        )
    

【讨论】:

它适用于所有值,除了 0 - 它没有动画就消失了......【参考方案2】:

setProgress(_:animated:) 方法已经为您处理了动画。当animated参数设置为true时,进度变化将被动画化。

尝试不使用动画块:

self.progressView.setProgress(1.0, animated: false)

DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) 
    self.progressView.setProgress(0.0, animated: true)

还要确保这不是自动布局问题。检查您对进度视图的约束并确保其宽度得到适当的约束。

【讨论】:

swift-uiprogressview(代码片段)

...roller:UIViewControlleroverridefuncviewDidLoad()super.viewDidLoad()//创建ProgressViewletprogressView=UIProgressView(progressViewStyle:.default)progressView.frame=CGRect(x:150,y:250,width:200,height:0)//自定义高度无效,默认为2.0,可通过transform改变高度progressView.transform=CGAffi... 查看详情

bootstrap动画进度条

...建一个动画的进度条的步骤如下:添加一个带有class .progress 和 .progress-striped 的<div>。同时添加class .active。接着,在上面的<div>内,添加一个带有class .progress-bar 的空的<div>。添加一个带有... 查看详情

按钮单击-进度动画(代码片段)

...oid:layout_width="match_parent"android:layout_height="wrap_content"><ProgressBarandroid:id="@+id/progress_bar"style="?android:attr/progressBarStyleHorizontal"android:layout_width="match_parent"android:layout_height="match_parent"android:indeterminate="false"android:progressDrawable="@drawable/... 查看详情

安卓通过自定义view实现水波进度条控件

...际会流畅很多。一,用法:1,布局文件中添加WaveProgressView,circleColor属性为圆环颜色,waterColor属性为水波水滴的颜色,progress属性为初始的进度<com.yhongm.wave_progress_view.WaveProgressViewandroid:id="@+id/wave... 查看详情

如何在 Apple WatchKit 中为循环进度设置动画?

...t中为循环进度设置动画?【英文标题】:HowtoanimatecircularprogressinAppleWatchKit?【发布时间】:2015-05-0420:15:31【问题描述】:我有50个圆形图像(progress-1.png、progress-2.png等)代表一个圆圈的进度。如果我想出一个百分比值,如何为组... 查看详情

动画css进度条而不在更新之间跳转?

...css进度条而不在更新之间跳转?【英文标题】:Animatecssprogressbarwithoutjumpingbetweenupdates?【发布时间】:2015-02-1202:52:31【问题描述】:我正在我的网站上使用它……<progressid=\'video-progress\'min=\'0\'max=\'100\'value=\'\'></progress>这... 查看详情

带有动画的 TextField 使应用程序崩溃并失去焦点

】带有动画的TextField使应用程序崩溃并失去焦点【英文标题】:TextFieldwithanimationcrashesappandloosesfocus【发布时间】:2020-02-2319:32:46【问题描述】:最小的可重现示例:在SceneDelegate.swift:letcontentView=Container()在ContentView.swift:structSwiftUI... 查看详情

动画 jQuery 进度条

】动画jQuery进度条【英文标题】:AnimatingjQueryprogressbar【发布时间】:2015-06-1918:51:22【问题描述】:我发现了这个不错的动画进度条教程:http://www.cssflow.com/snippets/animated-progress-bar/demo但是进度条不使用jquery并且教程没有告诉您如... 查看详情

swift自定义动画进度

我正在寻找一些第三方或代码片段来实现像这样的自定义动画:https://drive.google.com/open?id=1nwmkBgHYUFGR_rrn9aM6S1CrSLpOb6Jb(看一下进度动画的顶部栏)我在iOS中的动画中并不强大,这个看起来像是一个复杂的任务,所有这些反弹等。你... 查看详情

android自定义view和属性动画完美结合,创造出酷炫圆环动画,带标尺和进度

...3173288本文出自【DylanAndroid的博客】Android自定义View和属性动画完美结合,创造出酷炫圆环动画,带标尺和进度无意中,在看了【Android自定义View实战】之仿QQ运动步数圆弧及动画,Dylan计步中的控件S 查看详情

在 View Swift 中创建滑动动画

】在ViewSwift中创建滑动动画【英文标题】:CreateslidinganimationinViewSwift【发布时间】:2016-07-0404:54:06【问题描述】:我想在Swift中制作滑动动画。我希望它通过从第一个视图控制器向下滑动来从第一个控制器转到第二个控制器。示... 查看详情

如何使动画在进度条上移动得更慢

】如何使动画在进度条上移动得更慢【英文标题】:Howtomakeanimationmovesloweronprogressbar【发布时间】:2013-12-1104:35:35【问题描述】:[UIViewanimateWithDuration:10000animations:^[self.RecomendedBarsetProgress:self.whatProgressbarShouldBeanimated:NO];];很明显,... 查看详情

动画效果

为 .progress-bar-striped 添加 .active 类,使其呈现出由右向左运动的动画效果。IE9及更低版本的浏览器不支持。<divclass="progress"><divclass="progress-barprogress-bar-stripedactive"role="progressbar"aria-valueno 查看详情

Swift 3:如何为类似于进度条的视图背景颜色设置动画

】Swift3:如何为类似于进度条的视图背景颜色设置动画【英文标题】:Swift3:Howtoanimateaviewbackgroundcolorsimilartoaprogressbar【发布时间】:2017-06-0221:05:48【问题描述】:当用户进入包含下图的视图控制器时,我希望根据本例中为70的值... 查看详情

ios制作个圆形进度条

...l*percentLabel;//数字进度label进度条进度改变的方法-(void)drawprogress:(CGFloat)progress;环行进度条用calayer来做 查看详情

swift--动画效果

for循环创建4*4个view,然后对立面的所有view进行动画,这里列集中动画的效果:1,旋转动画fortileinbackgrounds{//现将数字块大小职位原始尺寸的1/10tile.layer.setAffineTransform(CGAffineTransform(scaleX:0.1,y:0.1))//设置动画效果,动画时间长度1秒... 查看详情

如何使进度条进度从边缘四舍五入?

...何使进度条进度从边缘四舍五入?【英文标题】:Howtomakeprogressbarprogressroundedfromedge?【发布时间】:2020-02-2105:29:32【问题描述】:我正在制作圆形和渐变色的自定义进度条。我做到了,但让它从边缘变圆是行不通的。这是我的进... 查看详情

swift 使 UIImageView 和 UIView 像一层一样使它们一起动画

】swift使UIImageView和UIView像一层一样使它们一起动画【英文标题】:swiftMakeUIImageViewandUIViewlikeonelayertomakethemanimatetogether【发布时间】:2019-11-1909:38:53【问题描述】:我有一个包含许多层的集合视图单元,希望它们像一层一样相互... 查看详情