Partage
  • Partager sur Facebook
  • Partager sur Twitter

[iOS] TableView customization

Sujet résolu
    16 octobre 2012 à 21:38:02

    Bonjour ! :)

    Voila, je travaille sur une nouvelle version de mon app, et je travaille en ce moment sur la liste des formules sous forme de UITableView.
    Voici mes questions :
    • - Est-il possible d'enlever la bordure par defaut sur la cellule ? (voir image, partie droite)
    • - Comment mettre une image de background derriere les cellules ? (voir image, partie gauche)
    • - Enfin, est-il possible de changer la largeur des cellules ? (le prototype à gauche de l'image a des cellules de 287, et non 300 comme par défaut)


    Image utilisateur




    Merci d'avance !
    • Partager sur Facebook
    • Partager sur Twitter
      17 octobre 2012 à 1:00:47

      1/- Comment mettre une image de background derriere les cellules ? (voir image, partie gauche)
      Pour cela tu vas devoir créer une custom classe UITAbleViewCell,
      ensuite tu override la methode setSelected: et tu change le layer de ta cell (tu devras surement utiliser CAGradientLayer pour obtenir un background "ombragé") pour changer son background.

      2/- Est-il possible d'enlever la bordure par defaut sur la cellule ? (voir image, partie droite)
      Pour supprimer la bordure, essaye
      self.tableView.separatorColor = [UIColor clearColor];
      


      3/- Enfin, est-il possible de changer la largeur des cellules ? (le prototype à gauche de l'image a des cellules de 287, et non 300 comme par défaut)
      Dans ta custom tableviewCell, override la methode setFrame:
      - (void)setFrame:(CGRect)frame {
      //Tu modifie ici ta frame, par exemple pour reduire ta cellule et la centrer:
          frame.origin.x += 16;
          frame.size.width = 287;
      //Et tu appelle la méthode overridé
          [super setFrame:frame];
      }
      


      • Partager sur Facebook
      • Partager sur Twitter
        17 octobre 2012 à 1:04:17

        Tu geres grave ! Merci beaucoup de ton aide !
        Je teste ca demain et je te tien au courant :D

        EDIT :

        Pour la 1ère question, on s'est mal compris je crois, moi ce que je voulais c'etait de changer le background de la vue, par des cellules ;)
        Mais j'ai trouvé :

        self.tableView.backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"background.png"]];
        


        Ensuite pour la ligne autour de la cellule c'est excatement ça ! Super ! :p
        Cependant, y'a toujours une sorte de ligne en bas, blanche, donc pour ceux qui veulent totalement la supprimer c'est comme :

        self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
        


        Pour finir, concernant la modification de la taille des cellules ça marche niquel aussi ! :D

        Une dernière chose, j'ai cherché sur le web mais j'ai pas trouvé : Comment est-ce que l'on change la distance entre les cellules ? J'ai vu sur stackoverflow y'en a qui parlent de créer des cellules transparentes de la hauteur voulu mais bon, v'la la galère ! Y'aurait pas une autre manière ?

        Merci :)
        • Partager sur Facebook
        • Partager sur Twitter
          17 octobre 2012 à 22:58:17

          Creer des cellules transparentes c'est pas bête et simple à réaliser, concernant une autre méthode je ne pense pas
          • Partager sur Facebook
          • Partager sur Twitter
            17 octobre 2012 à 23:21:38

            Enfin les cellules transparentes ca marche si on veut un espace plus grand, non pas plus petit ;)
            • Partager sur Facebook
            • Partager sur Twitter
              17 octobre 2012 à 23:23:31

              Non on peut choisir l'espace que l'on veut en vérifiant l' index.row s'il est paire et dans ce cas changer la hauteur (Et donc l'espace voulu) et le mettre transparent :)
              • Partager sur Facebook
              • Partager sur Twitter
                17 octobre 2012 à 23:47:50

                Oui mais, entre les cellules transparentes et les cellules visibles, il y a bien la distance entre les cellules par defaut ?
                • Partager sur Facebook
                • Partager sur Twitter
                  18 octobre 2012 à 0:04:33

                  Non il n y a pas de distance entre les cellules il y a une distance entre les sections
                  • Partager sur Facebook
                  • Partager sur Twitter
                    18 octobre 2012 à 0:23:23

                    Ah oui ! Entre les sections ! J'étais dans mon cas et j'avais même oublié que moi pour espacer mes cellules entre elles j'ai fais des sections composées que d'un cellule !
                    Donc dans mon cas, c'est easy peasy ;) bon bah j'ai utilisé ça pour définir une valeur qui reste la meme :

                    self.tableView.sectionHeaderHeight = 6.75;
                    self.tableView.sectionFooterHeight = 6.75;
                    


                    Puis :

                    -(CGFloat)tableView:(UITableView*)tableView heightForFooterInSection:(NSInteger)section
                    {
                        return WHATEVER;
                    }
                    


                    Y'a la même pour footer pour ceux qui seraient intéressés ;)

                    Merci de ton aide.
                    • Partager sur Facebook
                    • Partager sur Twitter

                    [iOS] TableView customization

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown