2013-02-16 8 views

Odpowiedz

4

Oto CCBottomRefreshControl kategoria dla klasy UIScrollView (rodzica klasy UICollectionView), która implementuje bottomRefreshControl nieruchomości. Jest kompatybilny zarówno z rodzimymi kontrolkami odświeżania systemu iOS 6 i 7.

-2

Nie możesz. W rzeczywistości nie można w ogóle dostosować UIRefreshControl.

9

Nie można użyć do tego celu UIRefreshControl, ale jeśli masz prostsze rozwiązanie, możesz po prostu skonfigurować widok kolekcji, aby automatycznie ładować więcej danych po przewinięciu do dołu. (Nawiasem mówiąc, jest to znacznie bardziej powszechny interfejs użytkownika ... podciągnięcie do odświeżenia nie jest powszechne, ale automatyczne pobieranie większej ilości danych po dotarciu do dolnej części).

Najbardziej prymitywnym interpretacją tego byłoby udzielenie odpowiedzi metody UIScrollViewDelegate i określić, czy masz przewijane do dołu widoku kolekcji (która jest sama, podklasą UIScrollView):

- (void)scrollViewDidScroll:(UIScrollView *)scrollView 
{ 
    if ((scrollView.contentOffset.y + scrollView.frame.size.height) >= scrollView.contentSize.height) 
    { 
     if (!self.isLoadingMoreData) 
     { 
      self.loadingMoreData = YES; 

      // proceed with the loading of more data 
     } 
    } 
} 

Jeszcze lepiej, jeśli masz więcej danych, aby załadować, show komórka na dole, która mówi "proszę czekać, ładowanie więcej danych", być może z UIActivityIndicatorView. Na przykład, jeśli masz więcej danych do załadowania, dodaj sekcję do końca za pomocą tej jednej komórki. Jeśli poprawnie sformatujesz tę dodatkową komórkę (np. Pojedynczą komórkę, która przechodzi przez całą kolekcję w widoku kolekcji), może z pewnością wyrenderować efekt, którego szukasz.

+0

Czy masz przykładowy kod, aby dać użytkownikowi to powiadomienie? Ładuję dane po przewinięciu do końca i wszystko działa poprawnie. Teraz potrzebuję powiadomienia podczas ładowania danych. Nie tak łatwo załadować dodatkową komórkę, aby wykonać to powiadomienie. Dzięki! –

+1

@ S.Birklin - Myślę, że to łatwiejsze niż podejrzewasz. Wystarczy, że 'numberOfRowsForSection' zwróci jeden dodatkowy wiersz (zakładając, że masz dodatkowe dane do pobrania). Następnie 'cellForRowAtIndexPath' może po prostu zobaczyć, czy wykracza poza zakres istniejących danych i pokazać komórkę" ładującą ", jeśli tak jest. Zobacz https://github.com/robertmryan/UITableView-Bottom-Refresh dla uproszczonej ilustracji. – Rob

+1

to powinna być zaakceptowana odpowiedź. –

Powiązane problemy