本文介绍了UIControlState.Normal不可用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

以前对于 UIButton 实例,您可以为传入 UIControlState.Normal setTitle setImage .Normal 不再可用,我应该使用什么?

Previously for UIButton instances, you were able to pass in UIControlState.Normal for setTitle or setImage. .Normal is no longer available, what should I use instead?

let btn = UIButton(frame: CGRect(x: 0, y: 0, width: 20, height: 20))
btn.setTitle("title", for: .Normal) // does not compile

推荐答案

Swift 3更新:

Swift 3 update:

看来Xcode 8 / Swift 3带来了 UIControlState .normal 返回:

It appears that Xcode 8/Swift 3 brought UIControlState.normal back:

public struct UIControlState : OptionSet {

    public init(rawValue: UInt)


    public static var normal: UIControlState { get }

    public static var highlighted: UIControlState { get } // used when UIControl isHighlighted is set

    public static var disabled: UIControlState { get }

    public static var selected: UIControlState { get } // flag usable by app (see below)

    @available(iOS 9.0, *)
    public static var focused: UIControlState { get } // Applicable only when the screen supports focus

    public static var application: UIControlState { get } // additional flags available for application use

    public static var reserved: UIControlState { get } // flags reserved for internal framework use
}

UIControlState.Normal 已重命名为 UIControlState.normal 并从iOS SDK中删除。对于Normal选项,使用空数组构造空选项集。

UIControlState.Normal has been renamed to UIControlState.normal and removed from the iOS SDK. For "Normal" options, use an empty array to construct an empty option set.

let btn = UIButton(frame: CGRect(x: 0, y: 0, width: 20, height: 20))

// Does not work
btn.setTitle("title", for: .Normal) // 'Normal' has been renamed to 'normal'
btn.setTitle("title", for: .normal) // 'normal' is unavailable: use [] to construct an empty option set

// Works
btn.setTitle("title", for: [])

这篇关于UIControlState.Normal不可用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-23 00:23