Je construis une application où vous pouvez faire glisser des images à l'intérieur d'une vue. Actuellement, il ressemble à ceci: p>
Comme vous pouvez le voir, j'ai marqué la couleur d'arrière-plan de la vue d'image en vert. La vue d'image contient contentMode Aspectfit et il y a 40 pixels plus petits que la vue noire derrière elle. Je veux que l'image soit la pleine longueur et la largeur de la vue d'image. La carte contenante doit être de l'aspect, que rien n'est coupé de l'image. Est-il possible de redimensionner l'image, qu'il comporte 20 pixels ou un peu plus d'espace de la vue? P>
4 Réponses :
@ ADRI567 Vous devez utiliser Essayez avec ceci! p> p> UIViewContentModeScaleToFill code> comme
Mais après cela, l'image est étirée
Ensuite, vous devez mettre uiviewContentModeScAlefill code>.
Je veux toute l'image. Si j'utilise l'affranchissement, certaines parties de l'image sont recadrées. : /
Ensuite, le problème sur votre ratio d'image. Avez-vous choisi l'image d'origine ou l'image éditée par contrôleur de sélection d'images? Cause Le rapport d'image cueilli doit être supérieur à la largeur de votre cadre et à la hauteur que vous pouviez voir l'image entière lors de l'utilisation de ScanetOfill. Sinon, vous ne pouvez pas.
J'ai choisi mon image avec une image d'origine.
@ ADRI567 Vous ne pouvez pas remplir votre image sans l'image recadrée ou étirée
Ouais, mais quand j'utilise Agentfill, certaines parties de l'image sont recadrées
@ ADRI567 Vous ne pouvez pas satisfaire les deux conditions étirées et recadrées! Vous ne pouvez pas obtenir de remplir l'image avec du contenu entier, sauf que vous ne perdiez une seule et la propriété pour remplir tout le contenu sans étirer est uiviewcontentModeScAblille code>
@ ADRI567 semble que vous avez essayé d'afficher des images de paysage et de portrait. Si vous voulez une image complète, essayez avec la mise à jour de votre image ImageView en fonction de la largeur et de la hauteur de votre image sélectionnées en fonction de cette orientation de l'image. Ensuite, seuls vous devez voir votre sortie souhaitée.
Comment puis-je y arriver pour mettre à jour le cadre de la vue Image?
Vous pouvez obtenir votre largeur et votre hauteur de votre image cueillies et essayer de trouver un portrait ou un paysage en fonction de la largeur et de la propriété de la hauteur de l'image ainsi que de la taille de votre écran. Ensuite, vous pouvez définir le mode de contenu comme Aspectfit pour le paysage, sinon ScallToofill au portrait.
Si vous voulez garder l'image à la même taille, mais ne voulez pas l'étirer. Votre solution est autre chose. P>
Affiche votre image comme .Aspectricefit comme dans la question p> li>
La vue verte que vous affichez le remplacer par la même image dans la même image dans la même image, mais le brouiller autant qu'il a l'air bien. P> Li> ol>
Mais y a-t-il maintenant un moyen de donner à l'image une hauteur dynamique? Donc, cela devrait être comme 20pts à l'écart des bords du niveau horizontal.
SIMPLE MATH peut résoudre ceci.
pour raccourcis: H -> Hauteur, W -> Largeur P>
Nous savons que la formule générale est: H1 / W1 = H2 / W2 CODE> P>
Hscreen = (Himage) * (WScreen) / Wimage
une approche ...
uiImageView code> dans un (vert) uIView code> li>
- Contrôler l'imageView sur les 4 côtés + 20 pts "Padding" Li>
- contraindre la largeur de la vue de Greenview (ou de son principal et de son suivi) li>
- contraindre la position Y de GreenView (haut ou centérieur) li>
- contraindre la hauteur de l'imageView avec un multiplicateur basé sur l'image
forte> largeur et hauteur li>
ul> Voici un exemple simple: p> xxx pré> le résultat, à l'aide d'un 640 x 360 code> Image: p> < p> p> et à l'aide d'un 512 x 512 code> (carré) Image: p> Ce sont mes images source: p>
p> p>
.CALETOFILL CODE> Vous ne recadrez pas l'image, mais vous serez étiré. Avec
affranchissement code> Vous n'ayez pas l'image entière, mais semble mieux
Y a-t-il un moyen sans étirer l'image?
Vous feriez mieux d'afficher l'image comme celle-là (.ASPLFIT) S'il y a lieu où vous prévisuez votre image, lorsque vous affichez dans une petite mise en page, vous devez utiliser la liste des images de la vignette, même si vous perdez un peu de bord.
@ ADRI567 - Votre question est un peu déroutante ... voulez-vous un "cadre vert" de 20 pixels autour de l'image? Avec le cadre vert centré horizontalement et verticalement?
Désolé, je ne suis pas très bon en anglais. Je veux quelque chose de similaire à cette question: Stackoverflow.com/Questtions/26833627/...
@ ADRI567 - Estimez-vous votre vue sur l'image dans Storyboard? Ou via le code?
@Donmag via le code