从Google云端硬盘加载UITableview上的图片

时间:2014-01-07 04:44:27

标签: ios uitableview google-drive-api

我正在尝试使用Google的示例从Google云端硬盘加载图片

- (void)loadDriveFiles {
  GTLQueryDrive *query = [GTLQueryDrive queryForFilesList];
  query.q = @"mimeType = 'image/png'";

  UIAlertView *alert = [DrEditUtilities showLoadingMessageWithTitle:@"Loading files"
                                                           delegate:self];
  [self.driveService executeQuery:query completionHandler:^(GTLServiceTicket *ticket,
                                                            GTLDriveFileList *files,
                                                            NSError *error) {
    [alert dismissWithClickedButtonIndex:0 animated:YES];
    if (error == nil) {
      if (self.driveFiles == nil) {
        self.driveFiles = [[NSMutableArray alloc] init];
      }
      [self.driveFiles removeAllObjects];
      [self.driveFiles addObjectsFromArray:files.items];
      [self.tableView reloadData];
    } else {
      NSLog(@"An error occurred: %@", error);
    //show error
    }
  }];
}

并在表视图中显示它,如图所示

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
  UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];
     cell.imageView.image=[UIImage imageNamed:[NSString stringWithFormat:@"%@",file.title]];


}

它没有显示图像,我是否必须先下载图像,如果是,请提供示例代码。

3 个答案:

答案 0 :(得分:0)

你在cellForRowAtIndexPath方法中缺少一行吗?从文件数组中获取文件的那个?

类似的东西:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"];

     GTLFile* file = [self.driveFiles objectAtIndex:indexPath.row];
     ...
}

注意:我在这里猜测文件变量的文件类型。

然后正如其他人指出的那样,这些文件是否在本地某处下载?如果是这样,您希望使用以下完整的本地路径加载它们:

[UIImage imageWithContentsOfFile:fullFilePath];

有关其他选项,请参阅UIImage Class Reference

答案 1 :(得分:0)

查看以下链接:

  1. How to load images and display in a uitableview
  2. Load images asynchronously in a UITableView using GCD (Grand Central Dispatch)
  3. 我对所提供的教程不予理睬。这些都是精彩的文章,我想我会指出你正确的方向。

    好运。

答案 2 :(得分:0)

为了将来参考,我找到了我在这里寻找的答案 Google Drive - Displaying images on uitableview