Comment puis-je prendre une UIImage et de lui donner un contour noir?
Comment puis-je définir la frontière d'un UIImage
?
- Par hasard, si quelqu'un les terres entendre par une recherche google (comme je l'ai fait) et sont à la recherche pour l'ajout d'une bordure à UIImageView, chercher la réponse par @mclin à fond. Fonctionne très bien!
Vous devez vous connecter pour publier un commentaire.
Avec OS > 3.0, vous pouvez le faire:
UIImage
sansUIImageView
!UIImage
peut être dessiné dans un contexte graphique avec CoreGraphics.Vous pouvez le faire en créant une nouvelle image (également répondu à votre autre publication de cette question):
Ce code va produire une rose de la bordure autour de l'image. Toutefois, si vous allez juste l'affichage de la frontière, puis utiliser la couche de la
UIImageView
et de définir ses frontières.CGContextSetLineWidth
size
est 320x480 indépendamment de si oui ou non vous êtes sur la Rétine périphérique, de sorte que lorsque vous enregistrez l'image, il enregistre à 320 x 480 pixels de résolution, pas de 640x960.Ce code peut être utilisé pour ajouter
UIImageView
vue frontière.Si vous connaissez les dimensions de votre image, puis ajout d'une bordure à l'UIImageView de la couche est la meilleure solution autant que je sache. En effet, vous pouvez tout simplement setFrame votre imageView x,y,image.taille.largeur de l'image.taille.hauteur
Dans le cas où vous avez une ImageView de taille fixe avec des images chargées dynamiquement qui se redimensionnée (ou mise à l'échelle pour AspectFit), votre objectif est de redimensionner l'imageview à la nouvelle image redimensionnée.
Le chemin le plus court pour ce faire:
Mais d'utiliser le AVMakeRectWithAspectRatioInsideRect, vous devez ajouter cette
instruction import de votre fichier et comprennent également la AVFoundation cadre de votre projet (fourni avec le SDK).
Vous ne pouvez pas ajouter une bordure, mais ce serait travailler pour le même effet. Vous pouvez également en faire la UIView appelé blackBG dans cet exemple dans une UIImageView avec une bordure d'image et un vide au milieu, et puis vous auriez une image personnalisée de la frontière au lieu de noir.
UIImageView
dans le centre de l'une légèrement plus grandeUIView
de ma couleur de la monture.toutes ces réponses fonctionnent bien, MAIS ajouter un rect d'une image.
Supposons que Vous avez une forme (dans mon cas un papillon) et Vous souhaitez ajouter une bordure (bordure rouge):
nous avons besoin de deux étapes:
1) prendre l'image, convertir CGImage, passer à une fonction pour dessiner à l'écran dans un contexte à l'aide de CoreGraphics, et donner une nouvelle CGImage
2) convertir uiimage dos et tirage:
}
}
J'ai ajouté un normal papillon et d'un rouge bordé de gros papillon.
Vous pouvez ajouter une bordure à la UIImageView, puis modifier la taille de la UIimageView selon la taille de l'image:
Assurez-vous de définir l'origine de l'imageView au centre
Vous pouvez manipuler l'image elle-même, mais d'une bien meilleure façon est de simplement ajouter une UIView qui contient le UIImageView, et de changer l'arrière-plan en noir. Définissez la taille du conteneur vue d'un peu plus grandes que la UIImageView.
Une autre façon est de le faire directement à partir du concepteur.
Sélectionnez votre image et allez dans "Afficher l'Identité de l'inspecteur".
Ici, vous pouvez l'ajouter manuellement "Défini par l'Utilisateur Runtime Attributs":
//vous avez besoin d'importer
& puis pour ImageView en bordure
Cette fonction vous renvoie l'image avec une bordure noire d'essayer cette.. espérons que cela vous aidera
Dans Swift 3 voici comment vous le faites à la UIImage lui-même:
Pour ceux qui recherchent un plug-and-play sur UIImage, j'ai écrit CodyMace, en réponse à une extension.
Utilisation:
let outlined = UIImage(named: "something")?.outline()
J'ai créé une classe qui ajoute une bordure à imageView h. L'utilisation de cette classe au lieu de UIImageView.J'ai donné un rembourrage de 4. Vous pouvez donner à votre gré.
J'utilise cette méthode pour ajouter une bordure en dehors de l'image. Vous pouvez personnaliser la largeur de la bordure en
boderWidth
constante.Swift 3