sim*_*nbs 5 iphone load resize image tableview
我正在使用SDWebImage将图像加载到我的表视图中.我希望我的表视图中的图像可以调整大小并具有圆角.我找到了UIImage + Resize和UIImage + RoundedCorner来做到这一点.两个图书馆分开工作很好,但我还没有结合它们.我可以调整大小并绕过SDWebImage返回的图像的角落,但我发现这是相当重的资源,因此我希望在将图像保存到缓存之前调整图像大小.当第一次从网络加载图像时,它可能会在保存到缓存之前显示,因此我还想在第一次加载图像时调整图像大小.
我无法做到这一点,因为我无法弄清楚SDWebImage的哪种方法来操纵图像.我只需要在SDWebImage中的右侧UIImage上调用以下内容.
UIImage *image = [image thumbnailImage:50 transparentBorder:0 cornerRadius:5 interpolationQuality:kCGInterpolationHigh];
Run Code Online (Sandbox Code Playgroud)
任何人都可以告诉我在SDWebImage中我应该放置这段代码,以便在保存到缓存之前操作图像,并在从Internet而不是缓存加载图像视图时将操作图像发送到图像视图?
对于调整大小的图像部分,我没有一个很好的答案.
对于圆角功能,你完全是错误的方式,这是我之前尝试做的...尝试调整每个图像的大小并将其保存到磁盘......太复杂,太多要做的事......
正确而简单的方法是设置表格单元格的UIImageView cornerRadius:
cell.imageView.layer.cornerRadius = 8;
cell.imageView.layer.masksToBounds = YES;
Run Code Online (Sandbox Code Playgroud)
我明白了这一点。
您应该使用 SDImageCache.m 中的以下方法来操作图像:
1. - (void)storeImage:(UIImage *)image forKey:(NSString *)key;
2. - (void)storeImage:(UIImage *)image forKey:(NSString *)key toDisk:(BOOL)toDisk;
3. - (void)storeImage:(UIImage *)image imageData:(NSData *)data forKey:(NSString *)key toDisk:(BOOL)toDisk;
Run Code Online (Sandbox Code Playgroud)
在第三种方法中,您必须记住使用以下代码将 UIImage 转换为 NSData。toDisk如果属实,则应这样做。
NSData *croppedRoundedImageData = UIImageJPEGRepresentation(croppedRoundedImage, 1.0);
if (croppedRoundedImageData) data = croppedRoundedImageData;
Run Code Online (Sandbox Code Playgroud)
如果您在尝试保存数据时使用if (croppedRoundedImageData) data = croppedRoundedImageData;您的应用程序,则不会崩溃。NULL
在 SDWebImageDownloader.m 中,您必须添加用于操作的代码。- (void)connectionDidFinishLoading:(NSURLConnection *)aConnection这用于图像的首次加载(不在缓存中时)
| 归档时间: |
|
| 查看次数: |
3610 次 |
| 最近记录: |