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 中第一张图像的 alpha

Swift:更改 UIView 框架但显示不更新

如何在 Swift 3 中的 UIView 上添加右边框?

在 Swift 运行时更改自动布局约束的 UIView 的框架

在滚动视图中更改 UIView 而 / 更新滚动视图高度 - Swift 3 / Xcode 8

UIView的不透明度和alpha是不是相同[重复]