2012-12-20 1 views
6

Je travaille sur un projet dont le nombre d'images est affiché dans la vue de collection à partir de données Web.CollectionView Ios 6 numéro

J'ai mis en vue de collection WaterFlowLayout Open Source projet Github https://github.com/aceisScope/WaterflowView

Les images sont assignent dynamiquement à la vue collection ensemble d'images ..

Il fonctionne bien si ont vue sur la collection la source des images comptent 3 ou plus. .

Mais si l'image compte pour afficher est inférieur à 3 qu'il n'affiche pas en vue de collection .. dans projet de démonstration également sa passe même ..

encore une chose que j'ai implémentée tirer pour rafraîchir aussi mais dans et presque 12 images peuvent être affichées en une seule page et si le nombre d'images est supérieur à 13 que le défilement par défaut fonctionne bien et ne peut pas tirer pour rafraîchir mais si l'image compte est inférieure à 12 que je ne suis pas en mesure d'accéder à tirer pour rafraîchir la vue de colletion.

si numberOfItemsInSection est 3 et que numberOfColumnsInFlowLayout est également 3 signifie que son complète une ligne complète que le code fonctionnera correctement.

- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section 
    { 
     return 3; 
    } 

#pragma mark- UICollectionViewDatasourceFlowLayout 
    - (NSInteger)numberOfColumnsInFlowLayout:(WaterFlowLayout*)flowlayout 
    { 
     return 3; 
    } 

mais si numberOfItemsInSection est 2 et numberOfColumnsInFlowLayout est également 3 signifie que sa ne termine une ligne complète je ne suis pas en mesure d'afficher des images.

- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section 
    { 
     return 2; 
    } 

#pragma mark- UICollectionViewDatasourceFlowLayout 
    - (NSInteger)numberOfColumnsInFlowLayout:(WaterFlowLayout*)flowlayout 
    { 
     return 3; 
    } 

et peut-on suggérer aussi une astuce pour permettre de tirer rafraîchir même si vue de classement défilement par défaut n'est pas actif ..

Merci à l'avance ...

+1

Qu'est-ce qui se passe si vous revenez 2 pour numberOfColumns lorsque le nombre de les articles sont 2? Est-ce qu'il affiche alors? – rdelmar

+0

Oui est l'affichage de. – p1nt0z

Répondre

4

Vous pourriez envisager sauter le WaterFlowLayout dépôt et il suffit d'utiliser UICollectionView à la place:

  1. Pour commencer à utiliser UICollectionView, jetez un oeil à this excellent tutorial par Bryan Hansen. Cela vous familiarisera avec UICollectionView.

  2. Si vous utilisez UICollectionView, vous pouvez ajouter un contrôle de traction à rafraîchir avec seulement quelques lignes de code dans vos UICollectionViewControllerviewDidLoad méthode:

    UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init]; 
    [refreshControl addTarget:self action:@selector(startRefresh:) forControlEvents:UIControlEventValueChanged]; 
    [self.collectionView addSubview:refreshControl]; 
    
  3. Pour mettre en œuvre une Pinterest- le style de mise en page cascade, vous pouvez utiliser ce référentiel GitHub UICollectionViewLayout, ou un certain nombre d'autres dépôts qui sont là: https://github.com/jayslu/JSPintDemo

+0

Mais dans mes images, le nombre est inférieur à 12 signifie que les images sont des images à l'intérieur d'une même page de collation que je ne peux pas défiler. Si le défilement est désactivé, je ne peux pas tirer pour rafraîchir. donc toute méthode permettra toujours le défilement de la vue de collation, même si elle contient moins d'éléments. – p1nt0z