如何在ios7中的表格视图单元格中显示活动指示器

时间:2014-07-16 13:21:30

标签: ios uitableview

我正在尝试创建一个在表格视图中列出许多图像的应用程序。图像从存储在数组中的URL加载。我正在使用具有imageView,labels的自定义原型单元。如果Document目录中的图像可用,则从那里获取它,否则从url下载。然后将图像数据存储在文档目录中。在下载时,我想在每个单元格中间放置一个ActivityIndi​​cator,其中图像正在下载。我尝试将活动指示器与视图连接,显示错误"非法配置"。之后我尝试连接标签值,但没有显示。

UIActivityIndicatorView *activityIndicator = (UIActivityIndicatorView *)[cell viewWithTag:102];

在cellForRowIndexPath函数中

并称为

[activityIndicator stopAnimating];
[activityIndicator atartAnimating];

但它没有显示,我也在停止时放入了

2 个答案:

答案 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]];