我有一些代码需要缩略图,对其应用CoreImage
过滤器,然后将其设置为自定义UITableViewCell's
imageView
属性:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0),
^{
CIImage *inputImage = [[CIImage imageWithCGImage:self.thumbnail.CGImage]retain];
CIFilter *filter = [[CIFilter filterWithName:@"CISepiaTone" keysAndValues:
kCIInputImageKey, inputImage,
@"inputIntensity", [NSNumber numberWithFloat:1.0],
nil] retain];
CIImage *outputImage = [[filter outputImage] retain];
CGImageRef cgimage = [self.context createCGImage:outputImage fromRect:[outputImage extent]];
filtersTableViewCellItem.thumbnail = [UIImage imageWithCGImage:cgimage];
[filter release];
[outputImage release];
[inputImage release];
CGImageRelease(cgimage);
dispatch_async(dispatch_get_main_queue(),
^{
UITableViewCell *tableViewCell = [[self cellForRowAtIndexPath:indexPath] retain];
if (tableViewCell)
{
[filtersTableViewCell.activityIndicatorView stopAnimating];
filtersTableViewCell.imageView.image = filtersTableViewCellItem.thumbnail;
}
[tableViewCell release];
});
});
缩略图正在正确生成,但它没有在imageView
. 我试过做setNeedsDisplay
没有用。有趣的是,当我使用类似这样的代码但没有使用 customUITableViewCell
时,它工作得非常好。任何人都知道为什么这可能不起作用?