2015-05-06 5 views
10

Ich habe keine Antwort in Swift gefunden.Swift: Wie kann ich die Größe von Thumb Image auf UISlider basierend auf dem Wert des Schiebereglers ändern?

Ich habe einen UISlider, der den Wert einer Pinselgröße für eine Zeichnungs-App ändert, die ich mache. Ich möchte, dass die Größe des Daumenbilds abhängig vom Wert der Position des Schiebereglers aktualisiert wird.

Hier ist ein Screenshot des Schiebers für einige Kontext: enter image description here

ich das Anfangsbild des Daumens in viewDidLoad()

self.brushSizeSlider.setThumbImage(UIImage(named: "black"), forState: UIControlState.Normal) 

und haben einen IBAction für den Schieber wie folgt festgelegt:

@IBAction func brushSizeSliderChanged(sender: UISlider) { 
    if sender == brushSizeSlider { 
     self.brushWidth = CGFloat(sender.value) 
     println("the size of the brush is: \(self.brushWidth)") 
    } 
} 

Was sollte ich zu brushSizeSliderChanged hinzufügen, um die Größe des Thumb-Bildes je nach Wert zu ändern o f pinselSizeSliders thumb position/value?

+0

Sie haben die Schieber Daumen Bild mit einem entsprechend dimensionierten Bild zu aktualisieren. – rmaddy

+0

@rmaddy ja ... wie? –

+0

Wie was? Fragen Sie, wie man ein Bild der passenden Größe erzeugt? – rmaddy

Antwort

4
var ratio : CGFloat = CGFloat (sender.value + 0.5) 
var thumbImage : UIImage = UIImage(named: "yourImage")! 
var size = CGSizeMake(thumbImage.size.width * ratio, thumbImage.size.height * ratio) 
self.setThumbImage(self.imageWithImage(thumbImage, scaledToSize: size), forState: UIControlState.Normal) 

diesen Code auf Ihre Aktion-Methode hinzufügen

+1

func imageWithImage (Bild: UIImage, scaledToSize newSize: CGSize) -> UIImage { UIGraphicsBeginImageContextWithOptions (newSize, false, 0.0); image.drawInRect (CGRectMake (0, 0, newSize.width, newSize.height)) lassen newImage: UIImage = UIGraphicsGetImageFromCurrentImageContext() UIGraphicsEndImageContext() return newImage } –

Verwandte Themen