- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有 UITableViewCell
并在此加载图像,所以我想图像加载异步并显示激活指示器。这次图像加载时间非常长,所有图像在图像显示在表格 View 后加载。很多时候图像无法加载并且用户 UIInterface 挂起。并且不要在应用程序中运行任何进程。我很累,我使用了一个 SDWebImage
库。请帮助如何可能,谢谢
#import "UIImageView+WebCache.h"
@interface pictureViewController ()
{
NSArray*picarray;
NSArray*titlearray;
NSArray*idarray;
}
@end
@implementation pictureViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
[[[self navigationController] navigationBar] setTitleTextAttributes:@{NSForegroundColorAttributeName: [UIColor whiteColor]}];
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"background2.png"] forBarMetrics:UIBarMetricsDefault];
_tableview.separatorColor = [UIColor yellowColor];
NSURLRequest *req=[[NSURLRequest alloc]initWithURL:[NSURL URLWithString:@"http://edutimeapp.com/toshow/chamber-of-commerc/ws/fetch_gallery.php"]];
response =[[NSMutableData alloc]init];
[NSURLConnection connectionWithRequest:req delegate:self];
}
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
[response appendData:data];
NSLog(@"error receving data %@",response);
}
-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
}
-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{
NSError *error;
//NSLog(@"Error in receiving data %@",error);
NSMutableDictionary *json = [NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingMutableLeaves error:&error];
// NSLog(@"response data %@",json);
NSArray *results = [json objectForKey:@"status"];
picarray = [results valueForKey:@"img_url"];
titlearray = [results valueForKey:@"title"];
// NSLog(@"my title is%@",titlearray);
idarray=[results valueForKey:@"id"];
//NSLog(@"my galary id is%@",idarray);
[self.tableview reloadData];
}
// Do any additional setup after loading the view, typically from a nib.
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [picarray count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
// NSLog(@"tableview cell");
picture_viewcontrollerCell *cell = [tableView dequeueReusableCellWithIdentifier:@"htr"];
if (cell==nil)
{
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"Cell" owner:self options:nil];
cell = [nib objectAtIndex:0];
}
//NSData* imageData = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString: [picarray objectAtIndex:indexPath.row]]];
// UIImage* image = [[UIImage alloc] initWithData:imageData];
//cell.picture.image =image;
cell.titlelbl.text=[NSString stringWithFormat:@"%@",[titlearray objectAtIndex:indexPath.row]];
NSURL*url= [[picarray objectAtIndex:indexPath.row]valueForKey:@"img_url"];
[cell.picture setContentMode:UIViewContentModeScaleAspectFill];
[cell.picture sd_setImageWithURL:url placeholderImage:[UIImage imageNamed:@"Placeholder.jpg"]];
return cell;
}
@end
最佳答案
你应该试试这个(使用 SDWebImage 显示 activityIndicator 和加载图像)-
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
// NSLog(@"tableview cell");
picture_viewcontrollerCell *cell = [tableView dequeueReusableCellWithIdentifier:@"htr"];
if (cell==nil)
{
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"Cell" owner:self options:nil];
cell = [nib objectAtIndex:0];
}
cell.titlelbl.text=[NSString stringWithFormat:@"%@",[titlearray objectAtIndex:indexPath.row]];
NSURL*url= [NSURL URLWithString:[NSString stringWithFormat:@"%@",[picarray objectAtIndex:indexPath.row]]];
[cell.picture setContentMode:UIViewContentModeScaleAspectFill];
[cell.picture setShowActivityIndicatorView:YES];
[cell.picture setIndicatorStyle:UIActivityIndicatorViewStyleGray];
[cell.picture sd_setImageWithURL:url placeholderImage:[UIImage imageNamed:@"placeHolder.png"] options:indexPath.row == 0 ? SDWebImageRefreshCached : 0];
return cell;
}
关于ios - 如何使用 SDWebImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38368133/
我正在使用iPhone应用程序。在这个应用程序中,我使用了许多图像,我需要将这些图像存储在高速缓存中。为此,我发现SDWebImage是正确的框架,但无法在我的iPhone项目中包括此框架。谁能建议我
我使用 SDWebImage 将图像下载到我的 UITableView 中: [cell.imageView setImageWithURL:[NSURL URLWithString:tempPhot
如何使用 UIImageView 在 SDWebImage 占位符中设置事件指示器 最佳答案 Swift 5 和 SDWebImage 5-beta //pod file pod 'SDWebImag
所以首先,我发现了这个: SDWebImage process images before caching 这有帮助,但我真的想使用SDWebImage,有没有办法在完成之前通过类外部的方法处理图像?
我在应用程序中使用SDWebImage从网络加载和缓存图像。它的工作原理就像是一种魅力,但是唯一的问题是,每当我退出应用程序时,即使是暂时退出,图像缓存也会被清除,所有图像都必须再次下载。 Inter
我正在使用 SDWebImage 将图像从服务器获取到我在 IOS 中的表格 View 应用程序。 但问题是,当我在表格 View 中向下滚动而不是等待图像加载时,将下载的图像放在表格 View 的前
我正在尝试使用 SDWebImage 来缓存从网络检索的图像。图像一直缓存到内存中。我已经看到默认保存到磁盘的文档。 Everything will be handled for you, from
我有一个带有背景图像的按钮,我使用 SDWebImage 下载该按钮。我想保持高度不变,并通过保持纵横比而不剪切图像来改变宽度。只是恒定的高度和动态宽度。这里出了什么问题? //CODE FROM F
我使用 SDWebImage pod 进行下载并显示来自 json 的图像,它运行良好,但我有一个大问题。 我正在使用collectionView,当加载单元格时,某些单元格显示错误的图像。我搜索了它
我一定是在做一些愚蠢的事情,但是 SDWebImage 永远不会执行以下的完成处理程序: episodeImageView?.sd_setImage(with: url, completed: { [
我正在使用 SDWebImage 库。当我使用 iPhone 时它工作正常,但当我使用模拟器编译时它不起作用。我收到此错误: Undefined symbols for architecture
我尝试了 100 多种使用 SDWebImage 制作图像动画的方法,但总是失败。我理解使用 block 好吗?我有 IBOutlet 属性图像名称 images1。我制作了数组来存储值并为 3 个图
我正在使用 SDWebImage 框架下载 iPhone 游戏中的个人资料图像。 [cell.playerImage setImageWithURL:url placeholderImage: Def
我在 UICollectionView 和 UITableView 中使用 SDWebImage。在这两种情况下,当行数很高时,内存使用率有时会非常高,我会收到内存警告。 以下是我的头像: 你看,有时
我正在使用 SDWebImage 库来缓存 UICollectionView 的图像,该图像是从 url 下载的,每次发送所有请求但只下载两个图像。有谁知道原因吗???提前致谢。 代码是: SDWeb
美好的一天! 从网络下载全尺寸图像时,我使用这两个库。 代码: -(void)viewDidAppear:(BOOL)animated { dispatch_async(dispatch_ge
是否可以使用SDWebImage下载AES加密图片?如果是这样,我在哪里可以访问下载的数据,手动解密它们? 最佳答案 不幸的是,无法使用 SDWebImage 下载加密图像。我只是看了他们的类图,没有
我正面临这个问题,下面是代码。它第一次显示错误,然后没有完成 block 调用。 [self.comicsImage setImageWithURL:[NSURL URLWithString:self
我检查了 NSBundle,但找不到 SDWebImage 保存图像的缓存。缓存是否启用(见下面的代码)?根据Docs它进行缓存管理。 如文档中所示: Just #import the UIImage
这个问题可能很奇怪,但它正在发生,而我却不明白。 我刚刚从 https://github.com/rs/SDWebImage 下载了代码并尝试运行示例项目。 它正在构建成功,但没有运行。为什么? 提前
我是一名优秀的程序员,十分优秀!