首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有图像缓存和“拉到更新”选项的表视图

带有图像缓存和“拉到更新”选项的表视图
EN

Stack Overflow用户
提问于 2012-03-27 19:30:24
回答 2查看 1.1K关注 0票数 0

现在几乎每个ios应用程序都有类似于"Feed“选项的东西。编程通常包括从网络中获取图像,缓存它们,处理页面,“拉到更新选项”等等-所有的standart东西。

但看起来没有标准的解决方案吗?

  • 我试过“三个20”--非常大,很复杂的库,有很多模块。它真的缺乏好的文档!在从缓存中获取图像时,它也有“减速”现象。
  • 也许我应该为每个小任务分别使用不同的小型库?比如HJCache,自我等等。
  • 还是没有库的情况下从头开始写所有东西更好呢?

请给我一些关于最佳实践的建议,我现在真的被困住了。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-27 19:59:00

这一个是非常容易进入拉刷新。

对于图像加载,我为UIImageView编写了以下类别:

代码语言:javascript
复制
// .h
@interface UIImageView (UIImageView_Load)
- (void)loadFrom:(NSURL *)url completion:(void (^)(UIImage *))completion;
@end

// .m
#import "UIImageView+Load.h"
#import <QuartzCore/QuartzCore.h>

@implementation UIImageView (UIImageView_Load)

- (void)loadFrom:(NSURL *)url completion:(void (^)(UIImage *))completion {

    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
        if (data) {
            self.image = [UIImage imageWithData:data];
            if (completion) completion(self.image);
        }
    }];
}

@end

// To use it when building a cell

//...

MyModelObject *myModelObject = [self.myModel objectAtIndex:indexPath.row];
if (myModelObject.image) {
    cell.imageView.image = myModelObject.image;
} else {
    NSURL *url = [NSURL urlWithString:myModelObject.imageUrl];
    [cell.imageView loadFrom:url completion:^(UIImage *image) {
        // cache it in the model
        myModelObject.image = image;
        cell.imageView.image = image;
    }];
}

// ...
票数 0
EN

Stack Overflow用户

发布于 2012-07-09 16:57:50

我是Leah的拉到刷新库的粉丝,也就是这个STableViewController,它处理拉到刷新以及无休止的向下滚动。

对于图像加载,尝试SDWebImage从DailyMotion应用程序。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9896347

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档