|
import UIKit |
|
|
|
class QButton: UIButton { |
|
var isToggle: Bool = false { |
|
didSet { |
|
if isToggle { |
|
self.addTarget(self, action: Selector("touchUpInside:"), forControlEvents: .TouchUpInside) |
|
} else { |
|
self.removeTarget(self, action: Selector("touchUpInside:"), forControlEvents: .TouchUpInside) |
|
} |
|
} |
|
} |
|
var backgroundColorNormal: UIColor? { |
|
didSet { |
|
backgroundColor = backgroundColorNormal |
|
} |
|
} |
|
var backgroundColorHighlighted: UIColor? |
|
var _backgroundColorHighlighted: UIColor? { |
|
return backgroundColorHighlighted != nil ? backgroundColorHighlighted : backgroundColorNormal |
|
} |
|
var backgroundColorSelected: UIColor? |
|
var _backgroundColorSelected: UIColor? { |
|
return backgroundColorSelected != nil ? backgroundColorSelected : _backgroundColorHighlighted |
|
} |
|
var backgroundColorHighlightedSelected: UIColor? |
|
var _backgroundColorHighlightedSelected: UIColor? { |
|
return backgroundColorHighlightedSelected != nil ? backgroundColorHighlightedSelected : _backgroundColorHighlighted |
|
} |
|
|
|
override var highlighted: Bool { |
|
didSet { |
|
switch (highlighted, selected) { |
|
case (true, false): |
|
backgroundColor = _backgroundColorHighlighted |
|
case (true, true): |
|
backgroundColor = _backgroundColorHighlightedSelected |
|
case (false, true): |
|
backgroundColor = _backgroundColorSelected |
|
default: |
|
backgroundColor = backgroundColorNormal |
|
} |
|
} |
|
} |
|
|
|
func touchUpInside(sender: UIButton!) { |
|
selected = ~selected |
|
} |
|
} |
|
|
|
// func setBGColor(color: UIColor?, forState state: UIControlState) { |
|
// switch state { |
|
// case UIControlState.Highlighted: |
|
// println("normal") |
|
// case UIControlState.Selected: |
|
// println("normal") |
|
// case UIControlState.Normal: |
|
// println("normal") |
|
// case UIControlState.Highlighted | UIControlState.Selected: |
|
// println("normal") |
|
// default: break |
|
// } |
|
// } |