Swift UIView 在更改 alpha 期间闪烁
Posted
技术标签:
【中文标题】Swift UIView 在更改 alpha 期间闪烁【英文标题】:Swift UIView blinks during changing alpha 【发布时间】:2016-07-23 09:17:43 【问题描述】:我在更改 UIView 的不透明度时遇到问题。我正在这样改变它: UIView.alpha = value.如果我用 step = 0.01 更改它 - 视图会闪烁。即 alpha=0.05 的视图可能比 alpha=0.04 的视图更不可见。我用 step=0.01 更改 alpha,结果可能是:查看可见的更好->更好->更坏->更好->更坏等。我不明白为什么会发生这种情况。模拟器和真机都是一样的。项目:https://drive.google.com/file/d/0B5cO_tAtLPiwcFk2Qk4wbldDT3M/view?usp=sharing 此外,我在 20 秒内将 alpha 从 0.0 变为 1.0 进行了动画处理:youtu.be/in34amFvyOE
import UIKit
class ViewController: UIViewController
var alpha = CGFloat()
override func viewDidLoad()
super.viewDidLoad()
LableA.alpha = 0
AlphaLabel.text = "Alpha: \(alpha)"
override func didReceiveMemoryWarning()
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
@IBOutlet weak var LableA: UILabel!
@IBOutlet weak var AlphaLabel: UILabel!
@IBAction func pressedChAlphaBtn(sender: AnyObject)
alpha = alpha + 0.01
LableA.alpha = alpha
print(alpha)
AlphaLabel.text = "Alpha: \(alpha)"
@IBAction func pressedResetBtn(sender: AnyObject)
alpha = 0
LableA.alpha = alpha
print(alpha)
AlphaLabel.text = "Alpha: \(alpha)"
【问题讨论】:
能否请您在问题本身中提供您的代码? 我们不是来调试您的项目的。您必须为您的问题创建一个最小可重现的示例,并将其包含在您的问题中。 我不要求你调试项目。附加的项目是一个简单的项目,只是为了展示 alpha 的变化。我已经为你们创造了它。提前致谢 【参考方案1】:动画变化:
斯威夫特 1、2
UIView.animateWithDuration(0.5)
self.LableA.alpha = alpha
斯威夫特 3
UIView.animate(withDuration: 0.5)
self.LableA.alpha = alpha
【讨论】:
感谢您的评论。但我已经尝试在这里使用动画。它没有帮助。据我了解,alpha/opacity 的最终值存在问题。你们有什么想法吗?谢谢!以上是关于Swift UIView 在更改 alpha 期间闪烁的主要内容,如果未能解决你的问题,请参考以下文章
在 Swift 运行时更改自动布局约束的 UIView 的框架