Domanda

Qual è la migliore pratica per l'impostazione fattore di zoom di un'immagine all'interno IKImageView via NSSlider?

Sono stato in grado di legare un cursore sia per zoom o diminuire azione di un IKImageView. Ovviamente, ciò che io preferirei vedere è un singolo dispositivo di scorrimento che controlla entrambe queste azioni. Best, se l'immagine viene aggiornata dopo ogni modifica del dispositivo di scorrimento (in modo continuo, anche se un tasto del mouse non è ancora stato rilasciato).

È stato utile?

Soluzione

Questa demo spiega molto: ImageKitDemo

In particolare, questo frammento è quello che cercavo:

- (IBAction) zoomSliderDidChange:(id)sender
{
    [addProductPhotoImageView setZoomFactor:[sender floatValue]];
}

Altri suggerimenti

Il modo Attacchi sarebbe quello di legare sia il fattore di zoom della vista dell'immagine IK e il valore del dispositivo di scorrimento per la stessa proprietà del controller. Quando il cursore cambia il valore della proprietà, verrà notificato alla visualizzazione dell'immagine, e andare a prendere il nuovo valore dal controller.

Un vantaggio di questo modo è che è possibile aggiungere più modi di zoom in e out e il valore del dispositivo di scorrimento non andrà stantio. Per fare un esempio, se IKImageView aggiunge pinch-zoom (o se lo ha già io non sono multi-touch sul mio Mac), l'utente può ingrandire in questo modo e il cursore si aggiornerà automaticamente. Questo non accadrà con la soluzione IBAction.

Un altro esempio potrebbe essere Zoom In e Zoom Out comandi di menu (magari con ⌘ + e ⌘- scorciatoie da tastiera) che inviano messaggi di azione al controller. Il controller risponderebbe aumentando o diminuendo il valore della proprietà (usando un metodo setter implementa). Con Associazioni, sia la visualizzazione dell'immagine ed il cursore aggiorneranno libero. Senza attacchi, si dovrebbe parlare in modo esplicito sia alla visualizzazione dell'immagine e il dispositivo di scorrimento, dice uno di aggiornare il suo fattore di zoom e l'altro per aggiornare il suo dispositivo di scorrimento.

Un terzo esempio potrebbe essere un “fattore di zoom: X%” mostra in un angolo della finestra. Con binding, questo può aggiornare gratuitamente quanto l'utente ingrandisce l'immagine: spostando il cursore del pollice, pizzicando / unpinching dell'immagine, o premendo una voce di menu. Senza attacchi, questo sarebbe ancora un'altra cosa che devi parlare nelle vostre (almeno tre) metodi di azione cambiamento-il-zoom-valore.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top