Ligne horizontale à  la sélection d'une tableviewcell

6ix6ix Membre
04:33 modifié dans API UIKit #1
Hello,

J'aimerais pouvoir faire en sorte que lorsque l'on tapote sur une cellule d'une TableView, le texte se trouvant dans cette cellule soit barré.

Pour cela je crée une UITableViewCell où je dessine une ligne dans la méthode drawRect: si mon élément à  afficher est marqué.

Et j'implémente la méthode suivante:
<br />- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {<br />&nbsp; &nbsp; &nbsp; &nbsp; [tableView deselectRowAtIndexPath:[tableView indexPathForSelectedRow] animated:NO];<br />	[[myList.items objectAtIndex:indexPath.row] markItem];<br />	[tableView setNeedsDisplay];<br />}<br />

D'abord je "marque" mon élément, puis je redessine la vue.

Cela fonctionne très bien, mais j'aimerais éviter que la cellule devienne bleue au moment de la sélection. J'ai essayé de mettre le style de sélection de mes cellules à  UITableViewCellSelectionStyleNone, mais alors la vue n'est pas redessinée (bien que la méthode plus haut soit appelée).

Une idée?

Réponses

  • GercofisGercofis Membre
    04:33 modifié #2
    Je ne connais pas la réponse mais "ShopShop" fait ça...

    Peut-être se rapprocher du développeur http://nschum.de/apps/ShopShop/ ?
  • Philippe49Philippe49 Membre
    04:33 modifié #3
    Il suffit de changer les attributs du texte, en utilisant l'attribut correspondant à  barré. Sous iPhone, on n'a pas accès aux NSAttributedString, il faut regarder à  quoi cela correspond dans Core Graphics.

    Solution plus bidouille, tracer soit même un trait sur le texte, en prenant les mesures avec les méthodes de la catégorie de UIKitAddition.
  • Philippe49Philippe49 Membre
    04:33 modifié #4
    Une doc sur le text avec Quartz 2D Programming Guide
Connectez-vous ou Inscrivez-vous pour répondre.