Я использую SDWebimage для загрузки и кеширования изображений, и теперь я ищу способ прокрутки или прокрутки изображений. Я пробовал разные подходы, но я не могу заставить его работать, может кто-нибудь мне помочь?Прокрутка SDWebimage
3
A
ответ
3
Вы просто сделать свой браузер прокрутки изображения, как вы могли бы, но вместо установки image
собственности синхронно, просто вызовите метод SDWebImage
setImageWithURL
(от его UIImageView
категории).
Чтобы показать вам быстрые и грязные реализации, создать UIScrollView
, включите пейджинг, и в viewDidLoad
вы можете установить размер контента и загрузки первого изображение, например, так:
[self.scrollView setContentSize:CGSizeMake(self.view.bounds.size.width * [self.objects count],
self.view.bounds.size.height)];
dispatch_async(dispatch_get_main_queue(), ^{
ImageBrowserObject *object = self.objects[0];
[object scrollView:self.scrollView addImageViewIfNeededForIndex:0];
});
Вы также хотите настроить контроллер в качестве делегата для этой точки зрения прокрутки, а затем обработать scrollViewDidScroll
события:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
static NSInteger lastKnownIndex = -1;
NSInteger currentIndex = scrollView.contentOffset.x/scrollView.frame.size.width + 0.5f;
NSInteger nextIndex = currentIndex + 1;
NSInteger prevIndex = currentIndex - 1;
if (prevIndex < 0) prevIndex = 0;
if (currentIndex == lastKnownIndex)
return;
// add the imageviews we need, remove the ones we don't
[self.objects enumerateObjectsUsingBlock:^(ImageBrowserObject *object, NSUInteger idx, BOOL *stop) {
if (idx >= prevIndex && idx <= nextIndex)
[object scrollView:scrollView addImageViewIfNeededForIndex:idx];
else
[object scrollView:scrollView removeImageViewIfNeededForIndex:idx];
}];
lastKnownIndex = currentIndex;
}
и мой ImageBrowserObject
определяются следующим образом:
@interface ImageBrowserObject : NSObject
@property (nonatomic, strong) NSString *title;
@property (nonatomic, strong) NSURL *url;
@property (nonatomic, weak) UIImageView *imageView;
@end
@implementation ImageBrowserObject
- (id)initWithTitle:(NSString *)title URL:(NSURL *)url
{
self = [super init];
if (self) {
_title = title;
_url = url;
}
return self;
}
- (void)scrollView:(UIScrollView *)scrollView addImageViewIfNeededForIndex:(NSInteger)index
{
if (self.imageView)
return;
CGRect frame = CGRectMake(index * scrollView.frame.size.width,
0.0,
scrollView.frame.size.width,
scrollView.frame.size.height);
UIImageView *imageView = [[UIImageView alloc] initWithFrame:frame];
[scrollView addSubview:imageView];
[imageView setImageWithURL:self.url placeholderImage:[UIImage imageNamed:@"placeholder.png"]];
self.imageView = imageView;
}
- (void)scrollView:(UIScrollView *)scrollView removeImageViewIfNeededForIndex:(NSInteger)index
{
if (!self.imageView)
return;
[self.imageView removeFromSuperview];
self.imageView = nil;
}
@end
Это довольно упрощенная реализация, но я подозреваю, что вы поняли эту идею.
Смежные вопросы
- 1. SDWebImage в TableView Прокрутка вверх
- 2. Прокрутка не является правильной Когда я использовал SDWebImage
- 3. iOS SDWebImage для UITableView?
- 4. Comprehending SDWebImage загрузчик
- 5. Нет такого модуля «SDWebImage»
- 6. SDWebImage не работает
- 7. Завершение SDWebImage Блок
- 8. resize sdwebImage swift
- 9. SDWebimage vs HanekeSwift's
- 10. Рабочая версия SDWebImage
- 11. SDWebImage изображение нетерпеливых нагрузки
- 12. SDWebImage отправки неизвестного исключения
- 13. SDWebImage с локальным png
- 14. SDWebImage нить коробления CPU
- 15. Использование singleton для SDWebImage
- 16. Невозможно использовать SDWebImage
- 17. SDWebImage Отменить загрузку
- 18. AFImageRequestOperation с вопросом SDWebImage
- 19. Некоторые проблемы с SDWebImage
- 20. SDWebImage изменить размер изображения
- 21. AFNetworking vs SDWebimage
- 22. Расширение размера кэша SDWebImage
- 23. Получить SDWebImage Cache Image
- 24. SDWebImage and Swift
- 25. SDWebImage не показывает placeholderImage
- 26. UIImageView ошибка SDWebImage
- 27. sdwebImage setImageWithURL: placeholderImage: завершен:
- 28. SDWebImage NSURLRequests неудовлетворительного прерывисто
- 29. SDWebImage iOS 8 performance
- 30. Байт по умолчанию SDWebImage
Tried MWPhotoBrowser ???/ –
Это не кеширование SDWebimage, что является самым важным в моем приложении – Daantjeeuh