此前的UIButton情况下,你能够传递UIControlState.Normal的setTitle或setImage。 .Normal不再可用,我应该怎么用呢?
UIButton
UIControlState.Normal
setTitle
setImage
.Normal
let btn = UIButton(frame: CGRect(x: 0, y: 0, width: 20, height: 20)) btn.setTitle("title", for: .Normal) // does not compile
(这是一个规范的Q&一对,以防止与此相关的重复的问题洪水UIButton和UIControl变化与iOS 10和SWIFT 3)
UIControl
Swift 3更新:
看来Xcode 8 / Swift 3带UIControlState.normal回来了:
UIControlState.normal
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.normaliOS SDK和从iOS SDK中删除。对于“普通”选项,请使用一个空数组来构造一个空选项集。
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: [])