La façon Manchettes serait de lier à la fois le facteur de zoom de l'affichage de l'image IK et la valeur du curseur sur la même propriété de votre contrôleur. Lorsque le curseur modifie la valeur de la propriété, la vue de l'image sera notifiée et ira récupérer la nouvelle valeur de votre contrôleur.
Un avantage de cette façon est que vous pouvez ajouter plus de façons de zoom avant et arrière et la valeur dans le curseur ne sera pas périmé. Par exemple, si IKImageView ajoute un zoom pincé (ou s'il l'a déjà - je n'ai pas de multi-touch sur mon Mac), l'utilisateur peut zoomer de cette façon et le curseur se met automatiquement à jour. Cela n'arrivera pas avec la solution IBAction
.
Un autre exemple serait les commandes de menu Zoom avant et Zoom arrière (peut-être avec les raccourcis clavier ⌘ + et ⌘-) qui envoient des messages d'action à votre contrôleur. Votre contrôleur répond en augmentant ou en diminuant la valeur de la propriété (en utilisant une méthode setter implémentée). Avec les liaisons, la vue de l'image et le curseur seront mis à jour gratuitement. Sans Liaisons, vous devez explicitement parler à la fois à la vue de l'image et au curseur, en demandant à l'un de mettre à jour son facteur de zoom et à l'autre de mettre à jour son curseur.
Un troisième exemple serait un affichage «facteur de zoom: X%» dans un coin de votre fenêtre. Avec les liaisons, cette option peut être mise à jour gratuitement, quelle que soit la façon dont l'utilisateur effectue un zoom sur l'image: déplacer le curseur, pincer/défaire l'image ou appuyer sur un élément de menu. Sans bindings, ce serait encore une autre chose à laquelle vous devez parler dans vos (au moins trois) méthodes d'action change-the-zoom-value.
Vous devez définir les valeurs minValue et maxValue du curseur, probablement dans IB. –
C'est vrai, ainsi que l'état continu. –