Ich versuche, ein Trennzeichen für den Schieberegler zu zeichnen, der an der Position von 1/3 der Schiebereglerlänge sein muss. Der Slider Körper zieht erfolgreich, kaufen Trennzeichen - nicht, es zeigt nicht.UIBezierPath erscheint nicht
-Code folgt
class RangeSliderTrackLayer:CALayer {
weak var rangeSlider:RangeSlider?
override func drawInContext(ctx: CGContext) {
if let slider = rangeSlider {
let cornerRadius = bounds.height * 1/2.0
let path = UIBezierPath(roundedRect: bounds, cornerRadius: cornerRadius)
CGContextAddPath(ctx, path.CGPath)
CGContextSetFillColorWithColor(ctx, UIColor.lightGrayColor().CGColor)
CGContextAddPath(ctx, path.CGPath)
CGContextFillPath(ctx)
CGContextSetFillColorWithColor(ctx, UIColor.yellowColor().CGColor)
let lowerValuePosition = CGFloat(40)
let upperValuePosition = CGFloat(80)
let rect = CGRect(x: lowerValuePosition, y: 0.0, width: upperValuePosition - lowerValuePosition, height: bounds.height)
CGContextFillRect(ctx, rect)
let separatorPath = UIBezierPath()
var x = bounds.width/3
var y = bounds.height
separatorPath.moveToPoint(CGPoint(x: x, y: y))
separatorPath.addLineToPoint(CGPoint(x: x + 2, y: y))
separatorPath.addLineToPoint(CGPoint(x: x + 2, y: 0))
separatorPath.addLineToPoint(CGPoint(x: x, y: 0))
separatorPath.closePath()
UIColor.whiteColor().setFill()
separatorPath.stroke()
}
}
}
Was mache ich falsch?
Zunächst, kommt Ihr Code sogar in diesen Code? 'rangeSlider' könnte zu keiner Zeit null sein. Sind Sie sicher, dass Sie diesen Pfad in den richtigen Kontext zeichnen (wissen Sie, was der aktuelle Kontext ist)? – Putz1103