Bonjour j'aimerais ajouter un contour autour d'une UIView
J'ai donc essayé ça mais sans résultats...
#import <QuartzCore/QuartzCore.h>
myLabel.layer.borderColor = [UIColor greenColor].CGColor;
myLabel.layer.borderWidth = 3.0;
Pouvez-vous m'aider s'il vous plait ?
Réponses
Salut,
Ou est-ce que tu as mis ce bout de code ? Est-ce que tu es a vérifié que "myLabel" n'est pas nil au moment de l'appel du bout de code que tu montres ?
si tu mis ce code dans le bon endroit et que ton "myLabel" est pas nil, y a pas de raison que ça ne marchera pas.
J'ai mis ça dans mon cellForRowAtIndexPath
Logiquement il est pas nil, je l'ai crée dans le storyboard
Une idée du coup s'il vous plait ?
T'as bien les outlet ?
Ca tu l'a mis ou ?
En fait en vrai j'ai fait ça:
Dans le
le texte cell.legende s'affiche ? (il n'est juste pas encadré) ?
Oui il s'affiche avec un background color gris clair, mais il n'a pas de cadre
affiche voir la frame de cell.legende dans la console de debug pour voir ce que ca raconte
Voila, en gros ta frame est de 0, donc forcément un contour autour de rien, ca reste rien
cell.legende c'est un UILabel ?
Non c'est une UIView
tu peux mettre tout le code de ton cellforrow ?
Vous avez ci joint le screen, le légende c'est le cadre gris à côté de "Beneficiaires sans prestation"
Non, non, non. Ne touches pas la cellule ! Seulement la contentView.
Comment ça ?
Tu pourrais utiliser une syntaxe un peu plus moderne, ca serait plus lisible
Exemple :
-->
Sinon ca view legende c'est autour des 3 elements du bas de cellule ?
Et sinon ce que te dit Joanna c'est qu'il faut travailler sur cell.contentView et pas sur cell directement.
Non légende c'est le rectangle gris en haut à côté de "Bénéficiaires sans prestation"
Personne n'a d'idées s'il vous plait ? C'est vraiment le dernier détail à régler sur l'application
Je pense que c'est nil ce qui expliquerait ton problème.
Le NSLog renvoie effectivement "(null)".
Comment régler ça s'il vous plait ?
C'est cell ou légende qui est nil ? Si c'est legende, peut-être tu n'as pas connecté le IBOutlet de la cellule vers le label.
c'est "cell.legende" et j'ai vérifié il est bien connecté dans IBOutlet
---
Le code que tu as écrit correspond à l'ancienne façon de faire. Depuis, ce n'est plus comme cela que l'on crée des cellules. Au lieu de ça, on commence par enregistrer le XIB ou la classe correspondant à un reuseIdentifier (soit via code dans le viewDidLoad soit directement dans le Storyboard), et ensuite dans cellForRowAtIndexPath on utilise la nouvelle méthode "dequeueReusableCellWithIdentifier:forIndexPath:" (Enfin nouvelle... ça doit bien faire 3 ou 4 version d'iOS que c'est comme ça maintenant, ça date ^^) qui se charge de recycler une cellule existante si elle en a en stock (comme l'ancien "dequeueReusableCellWithIdentifier:")... mais se charge aussi de créer la cellule s'il n'en a pas en stock. Ce qui fait que tu n'as plus besoin, avec cette nouvelle méthode, du "if (cell == nil)" ni de créer la cellule toi même dans ce cas ; la nouvelle méthode retourne toujours une cellule et jamais nil, contrairement à l'ancienne méthode. Et quand cette nouvelle méthode crée la cellule pour toi, elle utilise le XIB que tu aura précédemment enregistré / associé à ce reuseIdentifier dans ton viewDidLoad via la méthode "registerNib:forReuseIdentifier:" (méthode à appeler sur ta tableView)
En faisant bien ainsi (cf la doc de UITableView ou le TableView Programming Guide pour des exemples de code), ta cellule sera bien créée en utilisant le XIB, et ton IBOutlet "légende" sera bien connecté et ne sera plus "nil", ce qui résoudra ton problème (et en + tu auras un code + propre et moderne et pas un code qui date de la façon de faire d'iOS 3 ou 4 et obsolète depuis !)