Pobieranie asynchronicznego obrazu i buforowanie obrazu nie jest prostym zadaniem. Trzeba to zrobić dobrze, bo inaczej pokona swój cel. Dlatego zdecydowanie sugeruję, abyś ostatecznie zbudował swój własny. Powiedziawszy to, potrzebowałem szybkiego i prostego rozwiązania, aby przejść do rozwoju mojej aplikacji.
znalazłem następujących rozwiązań:
Próbowałem HJCache, ale tak się nie stało oferują wspaniałe przewijanie, gdy obsługa dużych obrazów (1,5M +). Dla małych zdjęć działało jednak świetnie. Próbowałem również LazyTableImages, ale integracja nie była prosta.
Ostatecznie wybrałem SDWebImage. Integracja nie może być prostsza. Po połączeniu z biblioteki do projektu wszystko, co trzeba zrobić, to:
[cell.imageView setImageWithURL:[NSURL URLWithString:@"http://www.domain.com/path/to/image.jpg"]
placeholderImage:[UIImage imageNamed:@"placeholder.png"]];
w tableView:cellForRowAtIndexPath:
.
Dodatkowo:
- Works z własnych komórek, jak również
- nie blokuje UI
- Propozycje doskonałą wydajność przewijanie
- pobieranie obrazu i buforowanie jest bez zarzutu.
[ZDS_Shared] (https://github.com/ZarraStudios/ZDS_Shared) ma ograniczanie przepustowości, ale brak żądań synchronicznych (to znaczy zwraca zero dla zasobu, gdy buforowanie jest w toku). Działa z kolejkami operacji, więc domyślam się, że możesz dodać do tego wywołanie NSInvocation. – Jano