其中用到了两个开源代码
1.SDWebImage 异步读取图片数据
2.SCGifExample gif动画控件
此工程在SCGifExample的基础上修改
最近SDWebImage刚升级,我也借此修改了我的代码,
从中摘出gif部分与大家分享
图片缩放部分我还是用的手势,感觉以下方法不怎么好用,如果大家有更好的算法请分享
图片缩放效果请在真机上使用
- - (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
- {
- return imageView;
- }
- - (void)scrollViewDidZoom:(UIScrollView *)scrollView
- {
- imageView.center = scrollView.center;
- if (imageView.frame.origin.x < 0)
- {
- setFrameX(imageView, 0);
- }
- if (imageView.frame.origin.y < 0)
- {
- setFrameY(imageView, 0);
- }
- }
SDWebImage内部其实也可以实现动态图片读取,我项目紧没时间改,有兴趣的可以自己改改
返回Imge时返回imageArray就可以,代码可以学习SCGifExample的实现
SDWebImage增加了4个SDWebImageManagerDelegate函数
- (void)webImageManager:(SDWebImageManager *)imageManager ActivityIndicatorView:(UIActivityIndicatorView *)activityIndicatorView didFailWithError:(NSError *)error;
- (void)webImageManager:(SDWebImageManager *)imageManager ActivityIndicatorView:(UIActivityIndicatorView *)activityIndicatorView didFinishWithImage:(UIImage *)image drawRoundedRect:(BOOL)bDraw;
// SDImageCache中有数据
- (void)webImageManager:(SDWebImageManager *)imageManager ActivityIndicatorView:(UIActivityIndicatorView *)activityIndicatorView FileName:(NSString*)fileName didFinishWithImage:(UIImage *)image drawRoundedRect:(BOOL)bDraw;
// SDImageCache中无数据,SDWebImageDownloader下载获得
- (void)webImageManager:(SDWebImageManager *)imageManager ActivityIndicatorView:(UIActivityIndicatorView *)activityIndicatorView ImageData:(NSData *)imageData didFinishWithImage:(UIImage *)image drawRoundedRect:(BOOL)bDraw;
(UIActivityIndicatorView *)activityIndicatorView 用于显示下载状态
在ImageView调用SDWebImageManager时加载
typedef enum
{
SDWebImageRetryFailed = 1 << 0,
SDWebImageLowPriority = 1 << 1,
SDWebImageCacheMemoryOnly = 1 << 2,
SDWebImageRoundedRect = 1 << 3
} SDWebImageOptions;
中增加了SDWebImageRoundedRect用于标示是否显示圆角图片
SCGifExample增加了2个函数
- (BOOL)setGIFFile:(NSString*)gifFilePath;
- (BOOL)setGIFData:(NSData*)gifImageData;
状态栏和工具条我没有做完,状态栏最好自定义
下载地址:点击下载