Warning "deprecated"

CeetixCeetix Membre
17:04 modifié dans API UIKit #1
Hello Hello !

Bon je me suis remis à  coder et vla ti pas que j'ai un warning vraiment pas cool (il pollue mon écran le bougre). Je suis en plein dans un tableView et quand je rempli mes cellules j'ai le message que j'attache en image avec ce message.

Qu'est-ce donc? Pourquoi?  ::)

Réponses

  • olofolof Membre
    17:04 modifié #2
    C'est marqué dans la doc de UITableView Cell que la propriété 'text' est deprecated. Il est conseillé d'utiliser textLabel et detailTextLabel à  la place.
  • AliGatorAliGator Membre, Modérateur
    17:04 modifié #3
    Moi en ce moment je suis gros consommateur d'une petite macro maison :
    #ifdef __IPHONE_3_0<br />&nbsp; #define CREATE_CELL(identifier) [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier] autorelease]<br />&nbsp; #define SET_CELL_TEXT(cell,val) cell.textLabel.text = val<br />#else<br />&nbsp; #define CREATE_CELL(identifier) [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:identifier] autorelease]<br />&nbsp; #define SET_CELL_TEXT(cell,val) cell.text = val<br />#endif<br /><br />// exemple<br />- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {<br />&nbsp; &nbsp; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier];<br />&nbsp; if (cell)<br />&nbsp; {<br />&nbsp; &nbsp; cell = CREATE_CELL(@&quot;myIdentifier&quot;);<br />&nbsp; }<br />&nbsp; SET_CELL_TEXT(cell , [dataTab objectAtIndex:indexPath.row] );<br />&nbsp; return cell;<br />}
    
  • CeetixCeetix Membre
    17:04 modifié #4
    Il aime pas non plus ...
    je fais du:

    <br />[cell textLabel:aliment.nom];<br />
    


    :(
  • AliGatorAliGator Membre, Modérateur
    17:04 modifié #5
    Depuis quand "textLabel:" est une méthode, et un setter ?
    à  la limite le setter correspondant à  la property "textLabel", si tu préfères utiliser les appels de méthodes que la syntaxe pointée, ça serait setTextLabel... et comme son nom le suggérerait, ça prendrait en paramètre un UILabel... sauf que de toute façon la propriété est readonly... ce qui est logique.

    En fait depuis l'OS 3.0 il y a des styles prédéfinis de TableCells, et pour certaines d'entre elles y'a qu'une zone de texte (correspondant à  un textLabel donc) alors que pour d'autres (les styles utilisant 2 lignes par exemple) y'a un textLabel et un detailedTextLabel.
    Dans tous les cas tu peux accéder au textLabel de ta cellule, ce qui te renvoie donc un UILabel dont tu peux modifier la property "text" comme un UILabel normal.


    Enfin bon tout ça est décrit dans la doc de UITableViewCell du SDK 3.0, suffit de lire :P Et en plus sinon ma réponse plus haut te donnait la solution aussi...
  • CeetixCeetix Membre
    17:04 modifié #6
    Ah yes ok c'est bon ça marche super. Merci ;)  .
    Tiens une question qui n'as rien à  voir avec le warning. Vous savez comment recréez ce genre d'interface :

    things-03.png

    On dirait un tableView mais avec une présentation que j'arrive pas à  faire.
  • AliGatorAliGator Membre, Modérateur
    17:04 modifié #7
    C'est tout simplement une TableView utilisant le style "UITableViewStyleGrouped" (tu peux choisir le style dans IB) pour avoir des groupements de cellules de la sorte.

    Sinon pour le reste, tout est décrit dans le TaleView Programming Guide, en particulier dans cette section.

    En gros pour les icônes à  gauche c'est l'image de la cellule (cell.image en OS 2.x, cell.imageView.image en OS 3.0), le triangle à  droite c'est une accessoryView de style UITableViewCellAccessoryDisclosureIndicator...
  • CeetixCeetix Membre
    17:04 modifié #8
    Ok merci Ali. Pour les image c'est bon j'avais fait . C'était juste ce style de cellule un peu détachée que je voulais. Merci :)
Connectez-vous ou Inscrivez-vous pour répondre.