IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Objective-C Discussion :

[Objective-c] Acces UITableView apres personnalisation


Sujet :

Objective-C

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 3
    Points : 1
    Points
    1
    Par défaut [Objective-c] Acces UITableView apres personnalisation
    Bonjour,

    Je souhaite faire une liste de contact avec un UITableView.
    Jusque la ca marche. Maintenant je voudrais ajouter leur statuts (connectes ou non connectes) en ajoutant une image quelquepart dans telle ou telle cellule (dans cell.accessoryView ce serait l'ideal)
    Avant de charger la UITableView je la personnalise avec la methode "cellForRowAtIndexPath".
    Ma question : Peut on acceder a une cellule en particulier apres avoir charge une UITableView ? Si c'est le cas comment puis-je faire ?

    Merci.

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 937
    Points : 4 358
    Points
    4 358
    Par défaut
    Citation Envoyé par mkwest Voir le message
    Bonjour,

    Je souhaite faire une liste de contact avec un UITableView.
    Jusque la ca marche. Maintenant je voudrais ajouter leur statuts (connectes ou non connectes) en ajoutant une image quelquepart dans telle ou telle cellule (dans cell.accessoryView ce serait l'ideal)
    Avant de charger la UITableView je la personnalise avec la methode "cellForRowAtIndexPath".
    Ma question : Peut on acceder a une cellule en particulier apres avoir charge une UITableView ? Si c'est le cas comment puis-je faire ?

    Merci.
    Vous ne chargez pas une UITableView à proprement parler : vous chargez sa "dataSource"…

    le delegate de votre UITableView est appelé quand une cellule doit être affichée à l'écran
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    (vous n'avez pas besoin de sous-classé UITableView si ce que vous appelez "l'avoir personnalisé avec la méthode cellForRowAtIndexPath")

    c'est là que vous assignez les valeurs à afficher aux widgets de la UITableViewCell à partir de votre "dataSource", par contre la cellule (l'objet qui sert à faire le rendu visuel) est censée être recyclée (voir UITableView.dequeueReusableCellWithIdentifier) pour limiter l'empreinte mémoire (il n'y a pas besoin d'une UITableViewCell par nombre de lignes de la table).

    Vous n'avez pas besoin d'accéder vous-même à la cellule : votre code est appelé pour la remplir quand c'est nécessaire.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    merci,
    voici comment je creer ma uitableview:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
    {
        static NSString *CellIdentifier = @"Cell";
     
        CustomCell *cell = (CustomCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
        if (cell == nil) {
            cell = [[[CustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
        }
        _bdd = [[SQLManage alloc] init];
        _arrayOfLogin = [_bdd getList];
        cell.myLabel.text = [_arrayOfLogin objectAtIndex:indexPath.row];
     
    NSString    *urlByLogin = @"http://monurl/photos/";
        urlByLogin = [urlByLogin stringByAppendingString:[_arrayOfLogin objectAtIndex:indexPath.row]];
        urlByLogin = [urlByLogin stringByAppendingString:@".jpg"];
        NSData *imageData = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:urlByLogin]];
     
        if ([self isLoginConnected:_arrayOfLogin:[_arrayOfLogin objectAtIndex:indexPath.row]])
        {
           UIImage *accessoryImage = [UIImage imageNamed:@"connected.png"];
           UIImageView *accImageView = [[UIImageView alloc] initWithImage:accessoryImage];
           accImageView.userInteractionEnabled = YES;
           [accImageView setFrame:CGRectMake(-10, 0, 10.0, 30.0)];
           cell.accessoryView = accImageView;
           [accImageView release];
        }
     
        cell.imageView.image = [UIImage imageWithData:imageData];
     
        [imageData release];
     
        return cell;
    }
    Voila en gros je voudrais remplacer mon image : "connected.png" par une autre image "non_connected.png" lorsque un de mes contacts se deconnecte.

    J'utilise deja dequeueReusableCellWithIdentifier ...

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 937
    Points : 4 358
    Points
    4 358
    Par défaut
    et qu'est-ce qui vous empêche de le faire ?

    vous avez l'état booléen "isLoginConnected" qui vous permet de décider quelle image associer au widget…

    Ou est-ce comment propager l'évènement de déconnection qui vous pose problème ?
    Si c'est çà lisez la documentation de NSNotification, NSNotificationCenter pour propager les évènements "contact connecté" et "contact déconnecté" et pour ce qui est du rafraîchissement de la vue, vous avez de UIView et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    - (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation
    de UITableView.

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    D'accord je vais creuser dans cette direction, et je vais essayer avec reloadRowsAtIndexPaths, merci pour votre reponse.

Discussions similaires

  1. [Objective C] Accès à une variable d'un autre objet
    Par Bababilou dans le forum Objective-C
    Réponses: 2
    Dernier message: 24/07/2009, 16h30
  2. Réponses: 2
    Dernier message: 21/11/2008, 10h51
  3. Test accès internet après dégroupage
    Par jackk dans le forum Dépannage et Assistance
    Réponses: 13
    Dernier message: 02/08/2007, 14h42
  4. [EasyPHP] Accès refusé aprés changement de mot de passe root
    Par kodo dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 02/07/2007, 13h59
  5. [Wamp] Accès refusé après changement de mdp
    Par Death83 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 12
    Dernier message: 11/12/2006, 23h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo