This question already has answers here:
UIControlState.Normal is Unavailable

(4 个回答)


5年前关闭。




我正在 Xcode 8 上使用 iOS10 将我的应用程序更新到 Swift 3
我收到一个错误:
Btn.setTitle('str', forState: .Normal)

.Normal 不再是 UIControlState 的枚举类型。
我应该为此状态使用哪种类型的 UIControlState?

苹果枚举现在被定义为
public struct UIControlState : OptionSet {

   public init(rawValue: UInt)


   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
}

最佳答案

像任何其他选项集一样:

button.setTitle("", for: [])

其中 [] 代表 .normal (.normal 的值是 0 )。

请注意,我们可以在一次调用中使用多个状态:
button.setTitle("", for: [.selected, .disabled])

这就是 UIControlState 已更改为选项集的原因。

关于swift - setTitle(_ title : String? , for state : UIControlState) where is . 正常状态?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37905658/

10-12 14:28