美文网首页
IOS框架:使用图片类框架

IOS框架:使用图片类框架

作者: 时光啊混蛋_97boy | 来源:发表于2020-11-05 09:41 被阅读0次

原创:知识点总结性文章
创作不易,请珍惜,之后会持续更新,不断完善
个人比较喜欢做笔记和写总结,毕竟好记性不如烂笔头哈哈,这些文章记录了我的IOS成长历程,希望能与大家一起进步
温馨提示:由于简书不支持目录跳转,大家可通过command + F 输入目录标题后迅速寻找到你所需要的内容

目录

  • 一、SDWebImage
  • 二、SDCycleScrollView
  • Demo
  • 参考文献

一、SDWebImage

多数情况下是使用UIImageView+WebCacheUIImageView异步加载图片:

#import <SDWebImage/UIImageView+WebCache.h>

[cell.imageView setImageWithURL:[NSURL URLWithString:@"http://www.domain.com/path/to/image.jpg"] placeholderImage:[UIImage imageNamed:@"placeholder.png"]];

它还支持block语法,用于在加载完成时做一些操作:

[cell.imageView setImageWithURL:[NSURL URLWithString:@"http://www.domain.com/path/to/image.jpg"] placeholderImage:[UIImage imageNamed:@"placeholder.png"] completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType) {
    ... completion code here ...
}];

SDWebImage并不局限于UIImageView,使用SDWebImageManager可完成更多的操作:

SDWebImageManager *manager = [SDWebImageManager sharedManager];
[manager downloadWithURL:imageURL options:0 progress:^(NSUInteger receivedSize, long long expectedSize) {
    // 下载进度
} completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType) {
    if (image)
    {
        // 下载完成
    }
}];

或者使用Image Downloader也是一样的效果:

[SDWebImageDownloader.sharedDownloader downloadImageWithURL:imageURL options:0 progress:^(NSUInteger receivedSize, long long expectedSize) {
    // 进度
} completed:^(UIImage *image, NSData *data, NSError *error, BOOL finished) {
    if (image && finished)
    {
        // 下载完成
    }
}];

二、SDCycleScrollView

1、运行效果

2020-11-06 16:15:52.954175+0800 UseImageFrameworkDemo[57996:6002992] 滚动到第2张图
2020-11-06 16:15:54.634164+0800 UseImageFrameworkDemo[57996:6002992] 滚动到第0张图
.......
SDCycleScrollView

2、带标题的网络图片

- (void)URLImage
{
    SDCycleScrollView *cycleScrollView = [SDCycleScrollView cycleScrollViewWithFrame:CGRectMake(0, 100, SCREEN_WIDTH, 200) delegate:self placeholderImage:[UIImage imageNamed:@"placeholder"]];
    // page位置,默认居中
    cycleScrollView.pageControlAliment = SDCycleScrollViewPageContolAlimentRight;
    // 自定义分页控件小圆标颜色
    cycleScrollView.currentPageDotColor = [UIColor whiteColor];
    // 添加标题
    cycleScrollView.titlesGroup = _titles;
    [_ContainerView addSubview:cycleScrollView];
    
    // 模拟加载延迟
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        cycleScrollView.imageURLStringsGroup = self->_imagesURLStrings;
    });
    
    // block监听点击方式
    cycleScrollView.clickItemOperationBlock = ^(NSInteger currentIndex) {
        NSLog(@"block监听点击方式,位置为:%ld", (long)currentIndex);
    };
}

3、自定义分页控件

- (void)pageDot
{
    SDCycleScrollView *cycleScrollView = [SDCycleScrollView cycleScrollViewWithFrame:CGRectMake(0, 350, SCREEN_WIDTH, 200) delegate:self placeholderImage:[UIImage imageNamed:@"placeholder"]];
    cycleScrollView.currentPageDotImage = [UIImage imageNamed:@"pageControlCurrentDot"];
    cycleScrollView.pageDotImage = [UIImage imageNamed:@"pageControlDot"];
    [_ContainerView addSubview:cycleScrollView];
    
    // 模拟加载延迟
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        cycleScrollView.imageURLStringsGroup = self->_imagesURLStrings;
    });
}

4、本地图片

- (void)localImage
{
    SDCycleScrollView *cycleScrollView = [SDCycleScrollView cycleScrollViewWithFrame:CGRectMake(0, 650, SCREEN_WIDTH, 300) shouldInfiniteLoop:YES imageNamesGroup:_imageNames];
    cycleScrollView.scrollDirection = UICollectionViewScrollDirectionVertical;
    
    // 仅显示文字
    NSMutableArray *titlesArray = [NSMutableArray new];
    [titlesArray addObject:@"纯文字"];
    [titlesArray addObjectsFromArray:_titles];
    cycleScrollView.titlesGroup = [titlesArray copy];
    [cycleScrollView disableScrollGesture];
    
    [_ContainerView addSubview:cycleScrollView];
}

5、自定义cell的轮播图

a、如果要实现自定义cell的轮播图,必须先实现代理方法
- (void)customCell
{
    _customCellScrollView = [SDCycleScrollView cycleScrollViewWithFrame:CGRectMake(0, 1000, SCREEN_WIDTH, 200) delegate:self placeholderImage:[UIImage imageNamed:@"placeholder"]];
    _customCellScrollView.imageURLStringsGroup = _imagesURLStrings;
    [_ContainerView addSubview:_customCellScrollView];
}
b、点击图片回调
- (void)cycleScrollView:(SDCycleScrollView *)cycleScrollView didSelectItemAtIndex:(NSInteger)index
{
    NSLog(@"点击了第%ld张图片", (long)index);
    [self.navigationController pushViewController:[NSClassFromString(@"DemoVC") new] animated:YES];
}
c、滚动到第几张图回调
- (void)cycleScrollView:(SDCycleScrollView *)cycleScrollView didScrollToIndex:(NSInteger)index
{
    NSLog(@"滚动到第%ld张图", (long)index);
}

Demo

Demo在我的Github上,欢迎下载。
UseFrameworkDemo

参考文献

相关文章

网友评论

      本文标题:IOS框架:使用图片类框架

      本文链接:https://www.haomeiwen.com/subject/uerovktx.html