我正在尝试创建一个在表格视图中列出许多图像的应用程序。图像从存储在数组中的URL加载。我正在使用具有imageView,labels的自定义原型单元。如果Document目录中的图像可用,则从那里获取它,否则从url下载。然后将图像数据存储在文档目录中。在下载时,我想在每个单元格中间放置一个ActivityIndicator,其中图像正在下载。我尝试将活动指示器与视图连接,显示错误"非法配置"。之后我尝试连接标签值,但没有显示。
UIActivityIndicatorView *activityIndicator = (UIActivityIndicatorView *)[cell viewWithTag:102];
在cellForRowIndexPath函数中
并称为
[activityIndicator stopAnimating];
[activityIndicator atartAnimating];
但它没有显示,我也在停止时放入了
答案 0 :(得分:0)
Sudheesh,尝试将UIActivityIndicatorView
直接拖放到原型单元格中的界面构建器。然后你应该按一个IBOutlet按CTRL并拖动到相应的class.h。注意在为您的单元格制作的课程中制作IBOutlet,而不是在您拥有UITableView
的课程中。另请查看您是否在Identity Inspector中正确设置了UITableCell的Class(XCode左侧菜单中的第三个选项卡)。
答案 1 :(得分:0)
使用此代码
- (void)setImageWithURL:(NSURL *)url
{
[self setImageWithURL:url placeholderImage:nil];
}
- (void)setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholder
{
SDWebImageManager *manager = [SDWebImageManager sharedManager];
NSArray *spinnerImagesArray = [[NSArray alloc] initWithObjects:
[UIImage imageNamed:@"Spinner1.png"]
,[UIImage imageNamed:@"Spinner2.png"]
,[UIImage imageNamed:@"Spinner3.png"]
,[UIImage imageNamed:@"Spinner4.png"]
,[UIImage imageNamed:@"Spinner5.png"]
,[UIImage imageNamed:@"Spinner6.png"]
,[UIImage imageNamed:@"Spinner7.png"]
,[UIImage imageNamed:@"Spinner8.png"]
,[UIImage imageNamed:@"Spinner9.png"]
,[UIImage imageNamed:@"Spinner10.png"]
,[UIImage imageNamed:@"Spinner11.png"]
,[UIImage imageNamed:@"Spinner12.png"], nil];
// Remove in progress downloader from queue
[manager cancelForDelegate:self];
self.contentMode = UIViewContentModeCenter;
self.animationImages = spinnerImagesArray;
self.animationDuration = 0.7;
self.animationRepeatCount = -1;
[self startAnimating];
// self.image = placeholder;
if (url)
{
[manager downloadWithURL:url delegate:self];
}
else
{
[self stopAnimating];
self.contentMode = UIViewContentModeScaleToFill;
self.image = [UIImage imageNamed:@"no_image_available.png"];
}
}
并从表格视图单元格调用索引
的行 [cell.imgView setImageWithURL:[NSURL URLWithString:selectedRecipeImage.recipe_imageUrl]];