2012-12-20 38 views
6

Pracuję nad projektem, który ma wiele obrazów wyświetlających się w widoku kolekcji z danych sieciowych.CollectionView Ios 6 issue

I wprowadziły WaterFlowLayout Zobacz kolekcję projekt open source GitHub https://github.com/aceisScope/WaterflowView

Obrazy są dynamicznie przypisując Zobacz kolekcję obrazów tablicy ..

To działa dobrze, jeśli mają widok Źródło zdjęć liczyć 3 lub więcej. .

Ale jeśli liczyć do wyświetlania obrazu jest mniejsza niż 3 niż nim nie jest wyświetlanie w widoku kolekcji .. w projekcie demo również jego dzieje samo ..

jeszcze jedno zaimplementowałem pull, aby odświeżyć również, ale w i prawie 12 obrazów może być wyświetlanych na pojedynczej stronie i jeśli liczba obrazów jest większa niż 13 niż kolekcja domyślne przewijanie działa dobrze i jestem w stanie wyciągnąć, aby odświeżyć, ale jeśli liczba obrazków jest mniejszy niż 12, ponieważ nie jestem w stanie uzyskać dostępu do pobrania, aby odświeżyć widok colletion.

jeśli numberOfItemsInSection ma wartość 3, a numberOfColumnsInFlowLayout również 3 oznacza, że ​​jest kompletna jeden pełny wiersz niż kod będzie działał poprawnie.

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

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

ale jeśli numberOfItemsInSection jest 2 i numberOfColumnsInFlowLayout jest również 3 oznacza jej nie wypełnia jeden pełny wiersz nie jestem w stanie wyświetlić obrazy.

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

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

i ktoś może także sugerować pewne sztuczki, aby włączyć przyciąganie do odświeżenia nawet jeśli widok domyślny sortowania przewijanie nie działa ..

góry dzięki ...

+1

Co się stanie, gdy wrócisz 2 dla numberOfColumns gdy liczba przedmioty to 2? Czy wyświetla się wtedy? – rdelmar

+0

Tak jest wyświetlany niż. – p1nt0z

Odpowiedz

4

Można rozważyć omijając WaterFlowLayout repozytorium i po prostu użyć UICollectionView zamiast:

  1. Aby rozpocząć korzystanie z UICollectionView, spojrzeć na this excellent tutorial przez Bryan Hansen. Zapozna cię z UICollectionView.

  2. Jeśli używasz UICollectionView można dodać kontrolę pull-do-odświeżania z zaledwie kilku linii kodu w swoim UICollectionViewController „s viewDidLoad metody:

    UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init]; 
    [refreshControl addTarget:self action:@selector(startRefresh:) forControlEvents:UIControlEventValueChanged]; 
    [self.collectionView addSubview:refreshControl]; 
    
  3. wdrożyć Pinterest- układ wodospad styl, można użyć tego repozytorium gitHub UICollectionViewLayout lub dowolną liczbę innych repozytoriów, które są tam: https://github.com/jayslu/JSPintDemo

+0

Ale w moich obrazach liczba jest mniejsza niż 12 oznacza, że ​​obrazy są fiskami na stronie widoku pojedynczej sortowania niż nie mogę przewijać .. i jeśli przewijanie jest wyłączone niż nie mogę użyć polecenia przeciągnij, aby odświeżyć. więc dowolna metoda zawsze zezwala na wyświetlanie widoku sortowania, nawet jeśli ma mniejszą liczbę elementów w nim. – p1nt0z