iPhoneのアドレス帳から連絡先を表示しようとしています。連絡先の名前と画像を取得します。次に、これらの詳細を詳細ビューに渡します。
問題は、詳細ビューを押すと、アニメーションが非常に遅く途切れ途切れになることです。これは、画像のある連絡先の詳細を取得した場合にのみ発生します。連絡先の詳細に画像が含まれていない場合、pushviewcontroller アニメーションは完全に正常に機能します。
また、この問題は iPhone 4.0 でのみ発生することにも気付きました。これを iPhone 3gs でテストしたところ、完全に機能しました。したがって、これはデバイス固有の問題である可能性があると考えています。
次の方法で連絡先名を取得します。
ABAddressBookRef addressBook = ABAddressBookCreate();
ABRecordRef record=ABCFindPersonMatchingPhoneNumber(addressBook,
number, 0, 0);
if(record)
{
NSString *name=(NSString *)ABRecordCopyCompositeName(record);
NSLog(@"Contact Name %@",name);
}
そして、次の方法で連絡先画像を取得します。
if (record && ABPersonHasImageData(record))
{
CFDataRef data;
data = ABPersonCopyImageData(record);
if (data)
{
NSLog(@"ImageFound");
imageData=[[NSData alloc] initWithData:(NSData *)data];
}
}
次に、imageData を詳細ビューに渡します
DetailView *detail=[[DetailView alloc] initWithNibName:@"DetailView" bundle:nil];
detail.imageData=imageData
[self.navigationController pushViewController:detail animated:YES];
これを改善するにはどうすればよいですか?