【问题标题】:Swift UIView blinks during changing alphaSwift UIView 在更改 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 的变化。我已经为你们创造了它。提前致谢

标签: ios swift xcode uiview


【解决方案1】:

动画变化:

斯威夫特 1、2

UIView.animateWithDuration(0.5) {
    self.LableA.alpha = alpha
}

斯威夫特 3

UIView.animate(withDuration: 0.5) {
    self.LableA.alpha = alpha
}

【讨论】:

  • 感谢您的评论。但我已经尝试在这里使用动画。它没有帮助。据我了解,alpha/opacity 的最终值存在问题。你们有什么想法吗?谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-30
  • 2014-02-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多