0
votes

Échelle image à la taille avec aspectfit

Je construis une application où vous pouvez faire glisser des images à l'intérieur d'une vue. Actuellement, il ressemble à ceci:

 Entrez la description de l'image ici

 Entrez la description de l'image ici

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?


7 commentaires

.CALETOFILL Vous ne recadrez pas l'image, mais vous serez étiré. Avec affranchissement 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


4 Réponses :


1
votes

@ ADRI567 Vous devez utiliser UIViewContentModeScaleToFill comme xxx

Essayez avec ceci!


11 commentaires

Mais après cela, l'image est étirée


Ensuite, vous devez mettre uiviewContentModeScAlefill .


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


@ 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.



1
votes

Si vous voulez garder l'image à la même taille, mais ne voulez pas l'étirer. Votre solution est autre chose.

  1. Affiche votre image comme .Aspectricefit comme dans la question

  2. 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.


1 commentaires

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.



1
votes

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


0 commentaires

1
votes

une approche ...

  • Incorporer un uiImageView dans un (vert) uIView
  • Contrôler l'imageView sur les 4 côtés + 20 pts "Padding"
  • contraindre la largeur de la vue de Greenview (ou de son principal et de son suivi)
  • contraindre la position Y de GreenView (haut ou centérieur)
  • contraindre la hauteur de l'imageView avec un multiplicateur basé sur l'image largeur et hauteur

    Voici un exemple simple: xxx

    le résultat, à l'aide d'un 640 x 360 Image: < p>  Entrez la description de l'image ici

    et à l'aide d'un 512 x 512 (carré) Image:

    Entrez l'image Description ici

    Ce sont mes images source:

    Entrez la description de l'image ici

    entrez Description de l'image ici


0 commentaires