ios - UIButton 文本内容每隔一秒更新一次

标签 ios swift uibutton uikit

我正在尝试用一个测试值更新一个按钮,我注意到按钮标题文本每更新一次就会显示几分之一秒的测试值,但随后会重置为按钮的默认值。

好像是个bug,不过我想看看有没有更简单的解释。 我试过在按下按钮之前最多等待 10 秒,但这似乎一直在发生。

有什么想法可以让 UIButton 按预期运行吗?

import UIKit

class ViewController: UIViewController {

    var testEntry = "its working"
    @IBOutlet weak var testButton: UIButton!
    @IBOutlet weak var testLabel: UILabel!

    @IBAction func runTest(sender:
        UIButton) {
        // The button value should equal the value of the label value, but every 2nd button press of the test button results in the title of the button value resetting to the default value
        dispatch_async(dispatch_get_main_queue()) {
            self.testLabel.text = "\(self.testEntry)"
            self.testButton.titleLabel?.text = "\(self.testEntry)"
        }
    }

Here是github项目。

最佳答案

您不应该直接设置按钮标题标签的文本,您应该只将字体直接设置到标签上。应通过调用设置文本

func setTitle(_ title: String?, forState state: UIControlState)

文本会切换,因为您正在选择和取消选择按钮,这会在具有不同标题的某些状态之间切换。

关于ios - UIButton 文本内容每隔一秒更新一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39203683/

相关文章:

Swift 编程 UIButtons

ios - 单击swift 3 iOS时UIButton没有 Action

ios - AppStore 更新和 Realm

javascript - google map javascript api v3 不适用于 xcode 7 构建的应用程序

ios - Swift:在 dismissViewControllerAnimated 上将字符串值从 VC2 传递到 VC1

objective-c - 将 UIScrollView 上的点击传递给其下方的 Cell

ios - 带委托(delegate)的 Swift 扩展 (UIViewController)

ios - 可以在单例中设置我的 AVFoundation 相机吗?

ios - 从 UIColor 创建 UIImage 以用作 UIButton 的背景图像

swift - 如何在 UICollectionView 单元格中获取 UIImageView 的帧大小