Question

Je suis en train de dessiner une forme semi-transparente sur une image.

J'ai une UIView qui a le contenu de la couche de réglez-le sur l'image, avec une sous-couche de CAShapeLayer qui est chemin est défini à la forme. Il y a peu de ces UIViews l'intérieur d'une UIView mère, qui est l'enfant d'un zoom UIScrollView.

Tout va bien sur l'iPhone, mais quand je zoome sur l'iPad, le UIViews obtenir assez grand, et la CAShapeLayers disparaître. Les images montrent bien que. Je devinai que le problème était un problème de taille, donc je partage la CAShapeLayers en deux, de sorte qu'il y avait un gauche et un côté droit. Maintenant, ils ont tous deux se présentés à moins que les zooms utilisateur dans très loin, par exemple en « un pincement » au-delà de mon zoom maximum, juste avant de rebondir.

Fractionnement mon CAShapeLayers plus est faisable, mais un peu Checklist. Donc, j'ai quelques questions:

  1. Y at-il une taille maximale contrainte pour CAShapeLayers? Pourquoi ne s'applique pas aux contenus d'image de la couche?
  2. Pourquoi le re-dessin CAShapeLayers lors d'une pincée de zoom dans un UIScrollView? Ne devrait pas toute la vue du zoom (l'enfant immédiat UIScrollView's) pixellisé au cours du pouce? Comment puis-je faire cela?
Était-ce utile?

La solution

Il se trouve que la superficie maximale sur mon ordinateur (un MacBook 2006) est de 1024 * 1024.

Une forme plein écran sur l'iPad est 1004 pixels Heigh, donnant une largeur maximale d'environ 1044 pixels, par exemple si vous voulez une grande forme dans une vue de défilement horizontal.

Lors d'un zoom de rebond de pincement, la hauteur réelle de la forme devient plus grande, en poussant la largeur maximale jusqu'à environ 250 pixels. C'est plus étroit que je voudrais, mais faisable.

Cela peut être différent sur un iPad physique, mais ce sont les limites dans le simulateur sur ma boîte de dev.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top