Question

Je voudrais créer une vue de la grille dans mon iPhone application similaire à celle indiquée dans les les photos iPad app . Y at-il une bibliothèque ou d'un cadre disponible pour ajouter ce type de fonctionnalité (non-SDK)? Idéalement, je voudrais développer éventuellement une version iPad de l'application, où la grille serait 3 éléments larges en mode portrait et 4 dans le paysage, mais pour le moment, je voudrais 2 articles de large en mode portrait et 3 de large dans le paysage.

La seule façon que je peux penser à le faire est par le sous-classement UITableView et ayant une cellule personnalisée qui crée les 2 ou 3 articles. Cela semble cependant désordre et je suis sûr qu'il ya une meilleure façon.

Un élément typique aura une image, l'étiquette et le bouton -. Rien de trop compliqué

Était-ce utile?

La solution

Vous pouvez toujours utiliser le UITableView pour cela et vous auriez pas besoin de sous-classer. Comme vous l'avez dit tout ce que vous avez à faire est de créer votre propre cellule personnalisée qui n'est pas compliqué. Pas du tout désordre:)

Autres conseils

Pour iOS 6 et plus je recommande et href="https://github.com/steipete/PSTCollectionView" rel="noreferrer"> PSTCollectionView .

  

Le but est d'utiliser PSTCollectionView sur iOS 4/5 comme solution de repli et   passer à UICollectionView sur iOS6. Nous utilisons même certains tours d'exécution   pour créer UICollectionView lors de l'exécution pour les anciennes versions d'iOS.   Idéalement, vous liez seulement les fichiers et tout fonctionne avec les anciens   systèmes.

Dans l'année 2010 je recommande AQGridView

Je suis au courant ce qui est très vieux, mais je cherchais réponse à cela et a testé plusieurs solutions. J'ai trouvé GMGridView était l'un des meilleurs, moins des solutions buggy. Check it out https://github.com/gmoledina/GMGridView .

Pour en grille simple vue de table créer classe « GridViewCell » et dans le fichier en-tête ajouter:

@interface GridViewCell : UITableViewCell

@property (nonatomic, strong)  UIButton *column1;
@property (nonatomic, strong)  UIButton *column2;
@property (nonatomic, strong)  UIButton *column3;

@end

dans le fichier .m ajoutez ce code:

#define CELL_WIDTH 100
#define CELL_HEIGHT 80

#import "GridViewCell.h"

@implementation GridViewCell

@synthesize column1, column2, column3;

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
    column1 = [[UIButton alloc] initWithFrame:CGRectMake(5, 5, CELL_WIDTH, CELL_HEIGHT)];
    [self addSubview:column1];
    column2 = [[UIButton alloc] initWithFrame:CGRectMake(CELL_WIDTH+ 10, 5, CELL_WIDTH, CELL_HEIGHT)];
    [self addSubview:column2];
    column3 = [[UIButton alloc] initWithFrame:CGRectMake(CELL_WIDTH + CELL_WIDTH + 15, 5, CELL_WIDTH, CELL_HEIGHT)];
    [self addSubview:column3];
}
return self;
}

@end

et lorsque vous créez votre table utilisez nouvelle classe "GridView" déléguer cellForRowAtIndexPath:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    GridViewCell *cell = (GridViewCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[GridViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }
    [cell.column1 setBackgroundColor:[UIColor blackColor]];
    [cell.column2 setBackgroundColor:[UIColor blackColor]];
    [cell.column3 setBackgroundColor:[UIColor blackColor]];

    return cell;
}

NRGridView semble être la meilleure façon de contourner. Vous pouvez trouver .

Il a les mêmes méthodes que UITableView. Les cellules peuvent être personnalisées selon les besoins.

Je recommande d'utiliser UITableViewCells personnalisés. Dans iOS 5, vous ne devez pas les sous-classe. Il suffit d'ajouter un tableView à votre projet, ajoutez les cellules prototype (= cellule personnalisée) en utilisant Xcode au tableView, donnez-leur un identifiant unique et utiliser cet identifiant dans cellForRowAtIndexPath à dequeue et instancier votre cellule personnalisée. Réglez ensuite la cellule et le retourner.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top