2010-06-14 5 views
1

J'ai une sous-classe UIView qui dessine un UIImage comme arrière-plan. L'image est créée en utilisant la méthode stretchableImageWithLeftCapWidth:topCapHeight:, elle a des bords arrondis. J'utilise aussi un bloc d'animation à l'intérieur duquel je redimensionne ma vue. J'avais espéré que pendant l'animation, la méthode drawRect: serait appelée parfois, ce qui entraînerait le dessin de l'image d'arrière-plan correctement.Animation iPhone avec image extensible

Malheureusement, l'animation semble restituer l'image et la redimensionner juste au cours de l'animation, ce qui rend manifestement les bords arrondis. La seule solution de contournement que je peux imaginer est de placer trois UIImageViews (capuchon supérieur, remplissage central, capuchon inférieur) au-dessus de mon image d'arrière-plan d'origine, puis repositionner les images de calques et redimensionner l'image de remplissage. Cependant, cela semble assez compliqué ...

Y a-t-il une meilleure façon de prévenir cela?

EDIT: trouvé this. Semble mauvais ...

Répondre

2

En creusant à travers quelques docs d'Apple, j'ai trouvé par hasard la solution à mon problème. Tout ce que vous avez à faire est de jouer avec le paramètre contentStretch de UIView. Il vous permet de spécifier manuellement la zone de votre vue qui est étirée pendant l'animation.