0

画像の縦横比を変更せずに、画像ギャラリーを生成したいと考えています。画像はさまざまなサイズです。を使用してセル内にUICollectionView配置しています。UIImageView以下のコードを使用して画像サイズを取得します。ただし、常にサイズ 0 を返します。

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath{

NSString* url = [selectedImages objectAtIndex:indexPath.row];

UIImageView *thumb;
ALAssetsLibraryAccessFailureBlock failureBlock  = ^(NSError *myError) {
    NSLog(@"failed loading asset");
};
ALAssetsLibraryAssetForURLResultBlock resultBlock = ^(ALAsset *myAsset) {
    [thumb setImage:[UIImage imageWithCGImage:[myAsset aspectRatioThumbnail]]];
};
ALAssetsLibrary *lib = [[ALAssetsLibrary alloc] init];

[lib assetForURL:[NSURL URLWithString:url] resultBlock:resultBlock failureBlock:failureBlock];
NSLog(@"%f,%f",thumb.image.size.height,thumb.image.size.width);
return thumb.image.size;   
}
4

1 に答える 1

0

() で画像を取得し、で実行されない ため、常に画像サイズの戻り値サイズ0を取得するため、このメソッドの前に画像サイズを計算するか、UIImageview^{} blockmainthreadsizeForItemAtIndexPath

あなたはこのように試すことができますが、それは適切な方法ではないと思います.

ALAssetsLibraryAssetForURLResultBlock resultBlock = ^(ALAsset *myAsset) {
    [thumb setImage:[UIImage imageWithCGImage:[myAsset aspectRatioThumbnail]]];
return thumb.image.size;   

};
于 2013-08-15T09:43:54.380 に答える