Как загрузить изображения из plist в UITableView? - PullRequest
2 голосов
/ 23 апреля 2010

Я сохранил видео и миниатюры видео в папке «Документы». И я дал путь в плисте. В plist я взял массив и добавил в него каталоги. И в словаре я сохранил путь изображения

/Users/srikanth/Library/Application Support/iPhone Simulator/User/Applications/9E6E8B22-C946-4442-9209-75BB0E924434/Documents/image1  

для ключа imagePath.

для видео

/Users/srikanth/Library/Application Support/iPhone Simulator/User/Applications/9E6E8B22-C946-4442-9209-75BB0E924434/Documents/video1.mp4

для ключа filePath.

Я использовал следующий код, но он не работает. Я пытаюсь только для изображений. Мне нужно, чтобы изображения загружались в таблицу в каждой ячейке.

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) 
    {
       cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];

        [cell setAccessoryType:UITableViewCellAccessoryDetailDisclosureButton];
        UIImageView *image2;
        image2.frame = CGRectMake(0.0f, 0.0f, 80.0f, 80.0f);
        image2.backgroundColor = [UIColor clearColor]; 

    }
    NSDictionary *dictOfplist = [cells objectAtIndex:indexPath.row];
    NSString *path = [dictOfplist objectForKey:@"imagePath"];
    NSLog("path: %@", path);
    return cell;
}  

- (void)viewDidLoad 
{
    [super viewDidLoad];
    self.title = @"Library";
    self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Close" style:UIBarButtonItemStyleBordered target:self action:@selector(close:)];

    NSString* plistPath = [[NSBundle mainBundle] pathForResource:@"details" ofType:@"plist"];
    contentArray = [NSArray arrayWithContentsOfFile:plistPath];

    cells = [[NSMutableArray alloc]initWithCapacity:[contentArray count]];

    for(dCount = 0; dCount < [contentArray count]; dCount++)
        [cells addObject:[contentArray objectAtIndex:dCount]];
}

Я получил путь к изображениям из списка.
Но как я могу извлечь изображение из пути.
Выходные данные NSLog:

path: /Users/srikanth/Library/Application Support/iPhone Simulator/User/Applications/9E6E8B22-C946-4442-9209-75BB0E924434/Documents/snook.jpg

Как я могу получить с него изображение и сохранить в cell.imageView.image?
Как я могу сделать эту работу. Спасибо.

1 Ответ

0 голосов
/ 23 апреля 2010

Я вижу некоторые проблемы в вашем коде:

  • Когда вы создаете экземпляр UITableViewCell, вы создаете UIImageView image2, который не назначается и, следовательно, теряет память. Не нормально?
  • Вам не нужно получать ссылку на UIImageView ячейки по тегу. UITableViewCell уже имеет UIImageView, и его изображение может быть установлено с помощью свойства cell.imageView.image.

Где вы загружаете UIImage? Вы говорите, что сохраняете путь к изображению, но нет кода для загрузки изображения по этому пути.

...