2015-05-06 20 views
10

Non ho trovato una risposta per questo in Swift.Swift: Come posso modificare le dimensioni di Thumb Image su UISlider in base al valore del cursore?

Ho un UISlider che modifica il valore di una dimensione del pennello per un'app di disegno che sto creando. Voglio che la dimensione dell'immagine del pollice si aggiorni a seconda del valore della posizione del pollice del cursore.

Ecco una schermata del cursore per qualche contesto: enter image description here

I impostare l'immagine iniziale del pollice in viewDidLoad()

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

e hanno un IBAction per il cursore come segue:

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

Cosa devo aggiungere a brushSizeSliderChanged per modificare la dimensione dell'immagine del pollice in base al valore o f brushSizeSliders posizione/valore del pollice?

+0

è necessario aggiornare l'immagine pollice del dispositivo di scorrimento con un'immagine di dimensioni appropriate. – rmaddy

+0

@rmaddy si ... come? –

+0

Come cosa? Stai chiedendo come generare un'immagine della dimensione appropriata? – rmaddy

risposta

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) 

Aggiungere questo codice al metodo di azione

+1

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