Ich habe UISlider implementiert und muss die Spurhöhe anpassen. Ich fand das aber es funktioniert nicht.UISlider Spurhöhe
self.slider.trackRect(forBounds: CGRect(x: 0, y: 0, width: 100, height: 100))
Ich habe UISlider implementiert und muss die Spurhöhe anpassen. Ich fand das aber es funktioniert nicht.UISlider Spurhöhe
self.slider.trackRect(forBounds: CGRect(x: 0, y: 0, width: 100, height: 100))
fanden diese aber seine Arbeit nicht
Weil Sie verwenden es falsch. Sie nicht Anruf es. Sie Unterklasse und überschreiben es.
Der richtige Ansatz ist jedoch die Bereitstellung neuer Bilder für die Spur mit setMinimumTrackImage
und setMaximumTrackImage
.
Ok ... Ich habe matt Antwort + Beispiel verwendet und ich habe den Code für meine Bedürfnisse angepasst.
let coinEnd = UIImage(/*HERE_LEFT_BLANK_IMG*/).resizableImage(withCapInsets:
UIEdgeInsetsMake(0,7,0,7), resizingMode: .stretch)
.
.
.
.
override func trackRect(forBounds bounds: CGRect) -> CGRect {
var result = super.trackRect(forBounds: bounds)
result.origin.x = 0
result.size.width = bounds.size.width
result.size.height = 10 //added height for desired effect
return result
}
override func thumbRect(forBounds bounds: CGRect, trackRect rect: CGRect, value: Float) -> CGRect {
return super.thumbRect(forBounds:
bounds, trackRect: rect, value: value)
.offsetBy(dx: 0/*Set_0_value_to_center_thumb*/, dy: 0)
}
dann erbte ich dies zu meinem Slider und Woala.
Dies ist mein gewünschtes Ergebnis.
AlleMatt Hagel ... danke.
Beispiel: https://github.com/matnteub/Programming-iOS-Book-Examples/blob/master/bk2ch12p585slider/ch25p860slider/MySlider.swift – matt