2010-10-05 3 views

Répondre

2

Aucune vue intégrée n'offre cette fonctionnalité. Ce qui signifie qu'il y aura beaucoup de travail pour dupliquer cette fonctionnalité.

Ce que vous pouvez essayer:

1) Créer une nouvelle UIViewController avec une pointe.

2) Ajouter la barre supérieure et un Si vous avez un nombre fixe de « modèles » ils peuvent être ajoutés directement dans la pointe UIScrollView avec opaque = NO et alpha = 0.

3). Vous devriez pouvoir utiliser UIImageView

4) Sinon, vous pouvez ajouter les "templates" dynamiquement, par ex. viewDidLoad. La seule partie qui peut être un peu difficile est de calculer le cadre. Le pseudo code suivant devrait vous aider à démarrer.

int MARGIN = 20; 
float templateWidth = self.scrollView.bounds.size.width/3; 
float templateHeight = 300; 

for (int i = 0; i < [templates count]; i++) { 
    int row = i/3; 
    int col = i % 3; 

    float x = MARGIN + col * templateWidth; 
    float y = MARGIN + row * templateHeight; 
    CGRect templateFrame = CGRectMake(x, y, width - 2 * MARGIN, height - 2 * MARGIN); 

    // initialize `UIImageView` or similar 

    templateView.frame = templateFrame; 
    [self.scrollView addSubView:templateView]; 
} 

self.scrollView.contentSize = CGSizeMake(self.scrollView.bounds.width, /* max bottom of templates */); 
} 

Après avoir obtenu la mise en page parfaite le reste devrait être assez simple puisque vous ne devez répondre à des prises sur vos images de modèle. Jetez un oeil à UITapGestureRecognizer pour une façon de le faire.

En ce qui concerne l'iPhone. Je le ferais probablement de la manière dont vous sélectionnez un document dans les applications iWorks. Un seul modèle est affiché à l'écran à ce moment-là et vous faites glisser votre doigt vers la gauche/droite pour choisir. Mais tout dépend du contexte. Peut-être qu'une vue de table est mieux adaptée pour l'iPhone.

Bonne chance!

2

Avec iOS 6, utilisez UICollectionView!