2010-10-14 4 views
15

J'essaye de construire une image extensible dans l'interface constructeur. Est-ce seulement possible? J'ai cherché sur le web et ne peux pas trouver une solution appropriée. J'apprécierais des réponses.building extensible Image dans le constructeur d'interface

+0

Je ne suis pas sûr de ce que vous voulez dire exactement avec "image extensible" ...? – Micko

+0

Je voulais dire que je cherche un moyen de construire cela dans IB. Mais je suppose qu'il n'y a aucun moyen. * menuBgImage = [[UIImage imageNamed: @ "pm_menu_bg.png"] stretchableImageWithLeftCapWidth: 10 topCapHeight: 5]; – ilteris

+0

@ilteris pouvez-vous changer la bonne réponse sur ce post? La bonne réponse est maintenant fausse ... – Ross

Répondre

6

Avec iOS 7, vous avez maintenant la possibilité d'utiliser le découpage dans le Xcode5 xcassets catalogue. Ensuite, l'étirement sera fait pour vous lorsque vous ajoutez l'image découpée. (Voir official documentation)

3

Non, ce n'est pas possible.

+1

Plus précisément: Interface Builder n'est pas un éditeur d'image, vous ne pouvez donc pas créer d'image. Tout ce que vous voulez faire avec une image, vous devrez faire dans le code. –

+11

Mais il ne s'agit pas d'éditer des images, mais de construire des images extensibles comme vous pouvez le faire dans le code. –

+0

Cela serait particulièrement utile lors de la définition d'une image d'arrière-plan pour un UITextField. Sans pouvoir définir leftCapWidth dans IB, vous êtes obligé de définir l'image de fond en code. – memmons

22

Cela peut être fait dans le constructeur de l'interface: http://www.slideshare.net/mystcolor/stretchable-images-in-uiimageview-using-ib-only

enter image description here

+0

Ceci est correct et a fonctionné pour moi. +1 –

+2

Cela ne semble pas fonctionner pour UIBUttons. – bogardon

+0

Et à ce sujet: Je n'ai qu'une taille d'image 10x10, et je veux l'utiliser pour un UIView de taille 20 * 20? Il semble que le seul moyen est que je dois lancer une image aussi grande que possible, afin de la réduire pour qu'elle puisse être insérée dans un cadre plus petit. Cela permet à l'IU de ne pas être brisée. – samthui7

11

Si vous voulez dire que vous avez déjà une image extensible, vous pouvez utiliser l'étirement caractéristique de l'IB. Les valeurs X et Y semblent être les positions pour le point de départ d'étirement, par rapport à la largeur et la hauteur entières de l'image, c'est-à-dire que 0,5 signifierait un point au milieu de l'image. Même chose pour les dimensions Largeur et Hauteur: pour la zone étirable, par rapport à la taille de l'image, c'est-à-dire que la valeur 1/imageWidth signifie que la zone étirable est de 1 pixel de large. La chose étrange est 0 fonctionne également bien pour le bouton de la pilule bleue (pourrait être pour des raisons de commodité?). Ci-dessous, les modes d'affichage sont définis sur "Mise à l'échelle". Les images sont des images extensibles de https://github.com/0xced/UIKit-Artwork-Extractor.

enter image description here

Cette réponse a été inspirée par http://www.slideshare.net/mystcolor/stretchable-images-in-uiimageview-using-ib-only