Ma question est la suivante: est-il possible qu’UIView affiche une image, et si oui, comment je le fais? Tout ce que je peux trouver, c'est la colorwithpatternImage
qui ne fonctionne plus avec Swift.
Le code que j'essaie d'utiliser maintenant est:
self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"background.png"]];
Merci d'avance pour vos réponses!
Reportez-vous à la documentation UIColor
.
Dans Swift, vous devez appeler un initialiseur de commodité. En effet, dans Swift, toutes les méthodes de classe Objective-C qui renvoient une instance de leur classe deviennent des initialiseurs pratiques.
Voici à quoi ça ressemble dans Swift:
self.view.backgroundColor = UIColor(patternImage: UIImage(named: "background.png"))
+ (UIColor *)colorWithPatternImage:(UIImage *)image
renvoie une instance UIColor
, elle deviendra donc un initialiseur de commodité dans Swift. De même, UIImage imageNamed:
devient init(patternImage image: UIImage!)
.
Je préfère à celui-ci:
let backgroundImage = UIImageView(frame: UIScreen.mainScreen().bounds)
backgroundImage.image = UIImage(named: "background.png")
self.view.insertSubview(backgroundImage, atIndex: 0)
Puisque définir l'image en tant que backgroundColor le rendrait un peu flou.
Edited @ User9527 répond un peu. Je ne sais pas pourquoi il a été voté par terre .. Cela a très bien fonctionné pour moi. Je viens d'ajouter mon propre cadre personnalisé.
let frame = CGRectMake(10, 55, 45, 45)
let backgroundImage = UIImageView(frame: frame)
backgroundImage.image = UIImage(named: "bg_image")
self.view.insertSubview(backgroundImage, atIndex: 0)
Si vous essayez la propriété layer d'une imageview, vous devriez utiliser quelque chose comme ceci
userProfilePic.layer.borderColor = UIColor(patternImage:UIImage(named: "yourimg.png")!).CGColor
Cela m'a pris pas mal d'efforts, capturer et transmettre pour référence. Voir ci-dessous pour un exemple complet de génération et d'utilisation avec Swift.
Exemple de référence
Application de démonstration
Extrait de code
Voici comment un UIView est texturé dans la démo, voir le code pour le listing complet -
func genTexturedView(_ view:UIView) {
...
image.image = UIImage(named:"purple_example");
view.addSubview(image);
print("ViewController.genTexturedView(): Textured View added");
return;
}