2012-01-03 4 views
1

AddressBookUI APIをiOS 5アプリケーションに統合して、選択したコンテンツをテーブルビューに表示しようとしています。 AddressBook Pickerを実装して、ユーザーがアドレス帳から人を選択すると、TableView内のセルのラベルに値を設定します。選択した人物の画像を同じセルに表示することができ、デフォルトの画像がない場合はデフォルトの画像が表示されるようにしたいと思います。iOSアドレスブックイメージをUITableViewCellに設定する

名前と画像データの両方を同じTableViewセルに保存する方法を頭に浮かべることはできません。

どのように私はこれを達成するかもしれないかの提案があります。私は開発者のドキュメントを読んで、私はABPersonCopyImageDataWithFormatコマンドを使用する必要があることを知っています。私はそれをテーブルビューのセルに実装するようには思えません。ここで

は、私がこれまで持っているコードの抜粋です:

// Store the name into memory when the user selects, then dismiss the view. 
- (BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker shouldContinueAfterSelectingPerson:(ABRecordRef)person 
{ 

    NSString *selectedPerson = (__bridge NSString *)ABRecordCopyCompositeName(person); 


    [people insertObject:selectedPerson atIndex:0]; 

    if (ABPersonHasImageData(person) == TRUE) { 
     NSLog(@"Person has an image!"); 
    } else { 
     NSLog(@"Person does not have an image."); 
    } 

    [self dismissModalViewControllerAnimated:YES]; 

    [self.tableView reloadData]; 

    return NO; 
} 


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    PartyCell *cell = (PartyCell *)[tableView dequeueReusableCellWithIdentifier:@"Cell"]; 
    cell.backgroundView = [[GradientView alloc] init]; 

    cell.personLabel.text = [people objectAtIndex:indexPath.row]; 
    cell.personImage.image = [UIImage imageNamed:@"missing.png"]; // THIS NEEDS TO DISPLAY THE SELECTED USERS PICTURE. CURRENTLY SHOWS A DEFAULT USER. 

    return cell; 
} 

ありがとう!

答えて

3

見つかった簡単な解決策:選択した連絡先の画像を毎回インデックス0の新しいNSMutableArrayに保存します。

UIImage *image =[UIImage imageWithData:(__bridge NSData *)ABPersonCopyImageDataWithFormat(person, kABPersonImageFormatThumbnail)]; 

     [peopleImage insertObject:image atIndex:0]; 

画像は、その後、私は、以下の2行のコードを試してみましたUITabelView

cell.personImage.image = [peopleImage objectAtIndex:indexPath.row]; 
0

まず、あなたはABRecordRefからUIImageを得る:

[UIImage imageWithData:(NSData *)ABPersonCopyImageDataWithFormat(person, kABPersonImageFormatThumbnail)]; 

その後、あなたはのUITableViewCellのImageViewのの画像を設定することができますように:あなたを助けるかもしれ

[[cell imageView] setImage: image]; 

カップルの他のリンク:

http://www.chrisdanielson.com/tag/uitableviewcell/

http://goddess-gate.com/dc2/index.php/post/421

+0

に配列を呼び出すことにより、細胞内に通常のようにロードすることができますが、そのは私のために働いていません。元の投稿を編集中のコードの2つのセクションで編集しました。 – Brian

関連する問題