J'ai un UIView dans un UIScrollView que je veux redimensionner.Redimensionner un UIView - étendre le top
je peux augmenter la hauteur facilement:
CGRect frame = self.drawinView.frame;
frame.size.height += 100;
self.drawinView.frame = frame;
self.drawinScrollView.contentSize = CGSizeMake(frame.size.width, frame.size.height);
Et tout est bon.
Le code ci-dessus va créer une nouvelle zone de la vue au bas de la vue que je peux remplir. Maintenant, lorsque je redimensionne la vue, je veux seulement repeindre la nouvelle partie de la vue qui vient d'être créée. Je ne veux pas avoir à repeindre toute la vue.
Cependant! J'ai rencontré des difficultés lorsque j'ai besoin d'élargir le haut de la vue.
Faire:
CGRect frame = self.drawinView.frame;
frame.origin.y -= 100;
self.drawinView.frame = frame;
self.drawinScrollView.contentSize = CGSizeMake(500, 600);
ne fonctionne pas.
Comment est-ce que je peux faire ceci sans devoir repeindre la vue entière?
Ok, cela a du sens .. Je soupçonne que dire à DrawinView de verrouiller le contenu vers le bas impliquerait de le faire repeindre toute la toile? J'espérais éviter cela .. Peux-tu penser à une autre façon? –
Je ne suis pas sûr de l'une des choses suivantes: Il y a la propriété contentMode de la classe UIView. Si vous le définissez sur UIViewContentModeBottom, alors lorsque vous redimensionnez la vue, il devrait automatiquement appeler repaint et peut-être qu'il ne passera que dans le rectangle sale pour la zone révélée en haut. Sinon, vous pouvez toujours seulement dessiner cette zone et ne pas effacer le contexte avant de dessiner. (view.clearsContextBeforeDrawing = false) –
Ok, je n'ai pas essayé cela .. J'accepte le peu de votre réponse qui vient de dire que vous ne pouvez pas mettre les numéros! Ce que j'ai fait à la place, c'est de travailler sur la taille maximale de la toile dont j'ai besoin dans tout le scénario et ensuite de limiter le défilement manuellement. Cela donne le même effet et le rend un peu plus rapide! Je me pencherai sur ce ContentMode quand j'aurai le temps. Merci pour l'aide! 8 ^) –