TKImageIpsum是一个小助手类,可以从http://lorempixel.com/或其他类似服务下载指定大小的随机图片。下载的图片以key
和group
参数作为标识符在内存中缓存。
它使用一个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;
通过group
和key
参数,如果您想用随机图片填充几个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
✔ 已附件
✔ 是的
Apache