2009-07-04 4 views
0

J'ai une classe UIImageView personnalisée que j'utilise pour gérer les événements multi-touch sur le UIImageView. Quand le contact de l'utilisateur commence, je veux augmenter le cadre de UIImageView mais garder la taille d'UIImage fixée.iPhone - augmentez la taille UIImageView et gardez la taille d'image fixe

J'ai essayé de changer le cadre de UIImageView, puis d'appeler la méthode drawInRect: de UIImage pour maintenir la taille de UIImage corrigée. Mais ça ne fonctionne pas.

Le contentMode pour le UIImageView est défini comme ScaleAspectFit et dès que j'augmenter la taille du cadre de la UIImageView, la taille de UIImage augmente également (et n'est pas affectée par la drawInRect :)

Quelqu'un peut-il s'il vous plaît me dire comment je peux y parvenir?

Merci.

Ajout plus de détails

Ce que je suis en train de faire est ce

  1. Placez une UIImageView sur l'écran avec la même taille que la taille de l'image

  2. Lorsque l'utilisateur sélectionne l'image, n'importe où il touche, l'image est modifiée comme si l'utilisateur faisait des multi-touch avec l'image

Si j'augmente la taille de l'imageview pour détecter des contacts n'importe où, la taille de l'image augmente également ... Espérons que les choses soient plus claires!

Merci

+0

Pourquoi voulez-vous augmenter le cadre du UIImageView sans affecter l'image affichée? On dirait que vous voulez vraiment affecter la façon dont il traite les événements, pas son apparence. Quel effet spécifique essayez-vous d'atteindre? L'image reste-t-elle en surbrillance lorsque l'utilisateur déplace son doigt à l'extérieur du cadre? –

Répondre

0

Il peut y avoir d'autres façons de le faire, mais je pense que le UIImageView fait ce qu'il est destiné à faire ici. À quoi doit ressembler la zone de la vue non couverte par l'image? Soyez transparent? Avoir une couleur solide? Pourquoi voulez-vous faire cela? Est-ce pour capturer les événements tactiles d'une zone plus large que celle sous l'image elle-même?

Si vous avez une bonne raison pour cela, je créerais une nouvelle vue, probablement juste un simple UIView (avec un arrière-plan de couleur transparente), et j'ajouterais UIImageView à cela. Faites en sorte que la vue nette soit celle que vous redimensionnez.

+0

Merci. Oui, je souhaite capturer des événements tactiles à partir d'une zone plus large et les appliquer à l'imageview afin de donner l'impression que la zone tactile de la vue d'image est beaucoup plus grande qu'elle ne l'est réellement. J'ai mis l'imageview à l'intérieur d'un UIView avec un bkg transparent mais je ne peux pas obtenir les transformations à appliquer à l'imageview pour les touches sur l'uiview. – lostInTransit

+0

essayez de définir le bkg à 0,1 opacité, je pense que si elle est 0 alpha, il n'enregistre pas les événements tactiles –

+0

@Steve: non, un alpha de 0 est bien - vous devez juste vous assurer que userInteractionEnabled est défini sur OUI – philsquared

0

Je n'ai pas spécifiquement essayé, mais je pense que cela fonctionnerait:

imageView.contentMode = UIViewContentModeCenter; 
Questions connexes