Création d'un mask autour d'une image
Stéphane MARTIN
Membre
Bonsoir,
Depuis un moment j'essais d'appliqué un mask autour d'une image.
J'utilise IB, l'image s'affiche lors de l'execution mais pas le mask ?
voici le code :
CALayer *subLayer = Logo.layer;
subLayer.cornerRadius =15.;
subLayer.borderWidth = 4.;
UIColor *borderColor = [UIColor colorWithRed:255.0/255 green:90/255 blue:0/255 alpha:1.];
subLayer.borderColor = borderColor.CGColor;
subLayer.masksToBounds = YES;
Depuis un moment j'essais d'appliqué un mask autour d'une image.
J'utilise IB, l'image s'affiche lors de l'execution mais pas le mask ?
voici le code :
CALayer *subLayer = Logo.layer;
subLayer.cornerRadius =15.;
subLayer.borderWidth = 4.;
UIColor *borderColor = [UIColor colorWithRed:255.0/255 green:90/255 blue:0/255 alpha:1.];
subLayer.borderColor = borderColor.CGColor;
subLayer.masksToBounds = YES;
Mots clés:
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
edit : à priori logo est un UIImageView. Tu l'as relié à ton outlet déclaré dans ton .h ?
je l'ai relié wiew vers imageViewLogo.
[img]webkit-fake-url://58FA6E02-DCD4-4B51-B8B1-892820A6FCA3/image.tiff[/img]
IBoulet UImageView *Logo déclarer dans .h
Si logo est un UIImageView alors utilise QuartzCore (importe le framework et déclare le) :
self.logo.layer.cornerRadius = 5.0;
self.logo.layer.borderColor = [/color]UIColor[color=#000000] [/color][color=#40187e]whiteColor[/color][color=#000000 CGColor];
self.logo.layer.borderWidth = 4;
self.logo.clipsToBounds = YES;
@Stéphane : tu as une bordure autour de ton image au moins ? La bordure est arrondie ?
@Stéphane : tu es sur de passer par ce code ?
<http://cjoint.com/12ma/BCCppJphiWV.htm>
Et maintenant plus rien s'affiche ?
Par contre mes bordures autour de l'image, ne s'affichent toujours pas ?
entre
- (void)viewDidLoad { }
La preuve par l'image :
Mais c'est quand même hallucinant le temps que ça fait gagner de faire son interface sous IB. Et encore plus sous Xcode4 avec le mode assistant qui fait tout pour nous (création du IBOutlet, release de l'outlet dans viewDidUnload -- ce qu'on oublie souvent de faire encore plus quand on chaque l'interface via loadView, du coup pour la gestion des memory warnings c'est pas idéal si on oublie ça -- et dans dealloc, synthesize de la propriété...).
Ca permet de faire le positionnement des objets visuellement, en plus avec des guides, d'avoir directement un aperçu du rendu, de tout faire par drag & drop... et au pire les rares choses qu'on ne peut pas faire via IB on peut toujours le faire par code en complément mais juste pour compléter (c'est pas exclusif).
En plus avec AutoXIBL10n, toute l'interface étant traduite à la volée sans qu'on ait besoin d'écrire une seule ligne de code, plus besoin d'écrire du code qui va chercher dans Localizable.strings les traductions pour les divers éléments comme on doit le faire quand on crée l'IHM par code...
Bref que des avantages. Du moment qu'on sait bien l'utiliser (quitte à passer un peu de temps dans la doc "Understanding XIBs")
Je reviens sur la création de mask autour d'une image :
cela fonctionnne donc sans passé par IB.
J'ai pas compris pourquoi le nom logo de ma variable UImageView était refusé à la compilation ?
l'execution sur le simulateur aucun problème.
Par contre lors de la compilation sur l'Iphone voici le message d'erreur affiché
CopyPNGFile /Users/stephanemartin/Library/Developer/Xcode/DerivedData/Arrondi_Image-cwzqxddcxwcbzndpjdvdefbdcoyw/Build/Products/Debug-iphoneos/Arrondi_Image.app/air_de_repos.png ImageWiew/air_de_repos.png
cd /Users/stephanemartin/Desktop/ImageWiew
setenv PATH "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
"/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/PrivatePlugIns/iPhoneOS Build System Support.xcplugin/Contents/Resources/copypng" -compress "" /Users/stephanemartin/Desktop/ImageWiew/ImageWiew/air_de_repos.png /Users/stephanemartin/Library/Developer/Xcode/DerivedData/Arrondi_Image-cwzqxddcxwcbzndpjdvdefbdcoyw/Build/Products/Debug-iphoneos/Arrondi_Image.app/air_de_repos.png
While reading /Users/stephanemartin/Desktop/ImageWiew/ImageWiew/air_de_repos.png pngcrush caught libpng error:
Not a PNG file..
Could not find file: /Users/stephanemartin/Library/Developer/Xcode/DerivedData/Arrondi_Image-cwzqxddcxwcbzndpjdvdefbdcoyw/Build/Products/Debug-iphoneos/Arrondi_Image.app/air_de_repos.png
Verify exit code of build task with internal identifier 'CopyPNGFile air_de_repos.png'
Preceding build task claims to succeed in spite of generating error messages. Please file a bug report.
Cela ne se produit qu'avec les images.png ?
un réglage à faire au niveau des options de compilations ?
Il suffit d'ouvrir le terminal et de taper "file " puis faire glisser derrière le fichier PNG en question (pour que ça colle son chemin dans le terminal) et valider, cette commande "file" te dira de quel type de fichier il s'agit en vrai, non en se basant sur l'extension du fichier mais sur son contenu
Ouvre ton fichier PNG avec par exemple Aperçu, et réenregistre-le, mais cette fois-ci en prenant soin de bien choisir le format d'image PNG (et pas juste de changer l'extension dans le nom)