J'ai une application avec une visionneuse de photothèque. Dans l'application, vous pouvez sélectionner une photo et en utilisant des gestes échelle et panoramique autour de la photo. Je fais ceci en changeant la transformée affine de l'UIImageView contenant la photo. L'application prend également en charge l'évolution des orientations téléphoniques. Dans certaines situations, le calcul de la trame de l'UIImageView sur le changement d'orientation semble être faux. En règle générale, la taille d'image sera mal calculée.Cadre de UIView transformé après plusieurs changements d'orientation
- Set UIImageView avec transformation d'identité
- Set vue transformons donc nous réduisons d'un geste de pincement
- téléphone Rotation du mode portrait au paysage
- Appliquer une nouvelle transformation à la vue à l'échelle d'un point différent dans l'image
- téléphone Rotation du paysage au portrait
- ensemble Reprenez à l'identité
Après cela, le cadre UIImageView est différent de ce qu'il était à l'origine pour que l'image soit mise à l'échelle.
Les indicateurs d'autoresizing pour UIImageView sont .flexibleWidth et .flexibleHeight. Y a-t-il quelque chose que je puisse faire pour éviter cela? Il semble que LayoutSubviews ne gère pas très bien les UIViews mis à l'échelle. J'ai essayé de supprimer l'échelle dans viewWillLayoutSubviews() et de réappliquer dans viewDidLayoutSubviews() mais cela n'a pas aidé.
ok les applaudissements vont faire l'affaire. – Spads