有人可以在Swift中提供示例代码,以针对按钮的每个不同状态使用不同的矢量图形(UIBazierPath)实现自定义UIButton吗?
最佳答案
您可以将UIButton子类化,然后根据UIControlState进行绘制。例如:
class CustomButton: UIButton {
override var selected: Bool {
didSet {
self.setNeedsDisplay()
}
}
override var highlighted:Bool{
didSet {
self.setNeedsDisplay()
}
}
override func drawRect(rect: CGRect) {
if self.state == .Selected
{
//Do complex vector drawing for selected state
let roundRect = UIBezierPath(roundedRect: self.bounds, cornerRadius: 15.0)
UIColor.greenColor().setFill()
roundRect.fill()
}
else if self.state == .Normal
{
//Do complex vector drawing for normal state
let rect = UIBezierPath(rect: self.bounds)
UIColor.redColor().setFill()
rect.fill()
}
else if self.state == .Highlighted
{
//Do complex vector drawing for highlighted state
let roundRect = UIBezierPath(roundedRect: self.bounds, cornerRadius: 15.0)
UIColor.greenColor().setFill()
roundRect.fill()
}
}
}
正常时显示红色矩形,选中或突出显示时绿色圆形。
关于ios - 如何将矢量图形用于自定义UIButton的不同状态?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35095012/