TKImageIpsum 0.12

TKImageIpsum 0.12

测试已测试
Language语言 Obj-CObjective C
许可证 自定义
发布日期最新版本发布日期2014年12月

未命名维护。



  • 作者:
  • Tomek Kuzma

image

关于

TKImageIpsum是一个小助手类,可以从http://lorempixel.com/或其他类似服务下载指定大小的随机图片。下载的图片以keygroup参数作为标识符在内存中缓存。

工作原理

它使用一个NSOperationQueue,该队列消耗NSBlockOperation块来检查NSCache,如果缓存为空,则使用[NSData dataWithContentsOfURL:]从给定的格式URL下载图片。在内存不足的情况下,可以清理缓存。

使用方法

要获取一个指定大小的随机UIImage(尺寸为CGSize size),只需调用

    [TKImageIpsum getRandomImageWithSize:(CGSize)size withCompletionBlock:^(UIImage *image){
        // your code
    }];

然后从块中获取返回的UIImage实例,按需使用 :D

您还可以使用

        + (void)getRandomImageWithSize:(CGSize)size
                                 group:(id<NSCopying>)group
                                   key:(id<NSCopying>)key
                  withCompletionBlock:(void (^)(UIImage *image))completionBlock;

通过groupkey参数,如果您想用随机图片填充几个UITable/UICollectionViews,请参阅示例了解如何使用它。

注意

如果您想在UITableViewCell中设置图片,请在块中调用

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
        static NSString *CellIdentifier = @"Cell";


        TKTableViewCell *cell = (TKTableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
        if (cell == nil) {
            cell = [[TKTableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle                                             reuseIdentifier:CellIdentifier];
        }
        cell.textLabel.text = [NSString stringWithFormat:@"Cell %d", indexPath.row + 1];

        [TKImageIpsum getRandomImageWithSize:CGSizeMake(tableView.rowHeight, tableView.rowHeight)
                                       group:self.title
                                         key:indexPath
                         withCompletionBlock:^(UIImage *image) {
                             dispatch_async(dispatch_get_main_queue(), ^{
                                 if ([[tableView indexPathForCell:cell] isEqual:indexPath]) {
                                     cell.imageView.image = image;
                                     [cell setNeedsLayout];
                                 }
                             });
                         }];

        return cell;
    }

并记得在您的UITableViewCell或UICollectionViewCell的子类中重写的prepareForReuse方法中调用:

    cell.imageView.image = nil

示例项目

✔ 已附件

ARC

✔ 是的

联系方式

许可证

Apache