- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个自定义的 UIButton,它具有一些我希望它具有的独特状态,例如:
enum PositionControlState : Int {
case Available = 0, Pending, Waiting, Approved, Declined
}
我做了一些谷歌搜索,发现了一些关于位掩码和 Objective-c 中的 UIControlState.Application 的内容。我觉得我有一些拼图,但不太确定如何在 swift 2.2 中将它们组合在一起。
最佳答案
我不确定你是否解决过这个问题,但我做类似事情的方式是这样的。
extension UIControlState {
static let available = UIControlState(rawValue: 1 << 5)
static let pending = UIControlState(rawValue: 1 << 6)
static let waiting = UIControlState(rawValue: 1 << 7)
}
class Button: UIButton {
private var isAvailable = false
private var isPending = false
private var isWaiting = false
private func aFuncCalledWhenPending() {
isPending = true
}
override var state: UIControlState {
var s = super.state
if isAvailable {
s.insert(.available)
}
if isPending {
s.insert(.pending)
}
if isWaiting {
s.insert(.waiting)
}
return s
}
}
这将允许您编写代码,例如 button.setTitleColor(.red, for: .pending)
。
这种方法的问题是您的附加状态对于接受 UIControlState
的所有函数都是公开可见的。类似于 UIControlEvents
有很多状态,但其中一些只用于特定类。
请记住,如果您继续采用这种方法,您包含的其他状态应保留在“控制状态”的相同上下文定义中。
关于swift - 如何使用位掩码在 Swift 2.2 中自定义 UIControlState?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39111041/
我经常看到使用 UIControlState.normal,例如在 UIButton 对象上设置一个 titleColor,它将在所有控件状态中使用,作为 UIButton。 setTitleColo
我有 3 个按钮,提供给用户选择他们希望查看的类别。 它们的定义如下: //outlets @IBOutlet weak var ChineseButton: UIButton! @IBOutlet
标题说明了一切。这是我的代码: func createCheckBoxButton(xPos: CGFloat, yPos: CGFloat, tag: Int) -> UIButton {
在理解 UIControlState 的概念时,我得到了一个奇怪的 UIButton 结果。这是我与 UIButton 相关的简单代码。 import UIKit class ViewControll
我知道使用 UIButton,我可以添加额外的 UILabel 作为 subview : [myButton addSubview: myLabel]; 并且(至少,使用默认的标题标签)我可以在点击时
我得到了这行代码,可以在单击时更改按钮上的图像: sender.setImage(UIImage(named: "something.png")!, forState: .Highlighted) 但
这是我的代码: let font = UIFont(name: "AvenirNext-Regular", size: 16.0) let attributes: NSDictionary? = [
我对 UIControlState 的运作方式有点困惑。具体来说,如果我看下面的例子: sender.setTitle("NewTitle", for: UIControlState.normal)
如何设置 UIButton 的状态? 在 UIButton 类引用中有一个“状态”,但它只是“只读”。 谢谢詹姆斯 最佳答案 例如,您可以设置selected 属性 buttton.selected
有没有办法为 UIControl 设置自定义状态——而不是现有的 UIControlState 值之一? 在 UIControlSate 枚举中,有 16 位可用于自定义控件状态: UIControl
以前对于 UIButton 实例,您可以为 setTitle 或 setImage 传入 UIControlState.Normal。 .Normal 不再可用,我应该用什么代替? let btn =
我正在尝试使用外观方法 (>iOS 5.0) 自定义 UIBarButtonItem。它适用于 UIControlStateNormal,但不适用于突出显示或禁用。查看图片 这是我用来设置这些的代码:
我有一个带有两个段的简单 UISegmentedControl,我正在尝试自定义它的外观。 我收到这个运行时错误: *** Terminating app due to uncaught except
在一段代码中,我想动态地在 UIButton 上触发一个方法,我想执行提供了 UIControlState 的方法。 比如我现在的代码是: private func setValue(value: A
我在这里以编程方式自定义 UIButton: button = [UIButton buttonWithType:UIButtonTypeCustom]; [button setSel
我有一个自定义按钮,它具有透明背景和在按钮的 layer 中设置的自定义边框。 我想在按下按钮时将按钮的边框颜色更改为较深的颜色,例如在 UIControlStateSelected 期间,但我找不到
我希望在 IOS 平台上的 NSUserDefaults 中存储 UIControlState 的多个实例。 假设有一个带有各种 UIControl 元素的首选项面板,例如 UISlider、UISw
在 UIControl 中,如果我重写 isHighlighted 以设置私有(private) _isHighlighted 属性,然后检查控件的 state 看看它是否包含 .highlighte
我有一个 UIButton,我想更新它的标题,但我不想总是像下面这样对每个状态都这样做: [myButton setTitle:@"Play" forState:UIControlStateNorma
我有以下 UIButton: // create footerView let footerView: UIView = UIView() footerView.backgroundColor = U
我是一名优秀的程序员,十分优秀!