-1

を使用してAGImagePickerControllerいます。iCarousel選択した画像を別のカルーセルにある自分にインポートする方法を理解するのに苦労しています。success blockその中に選択した画像が含まれていることを知っています。それを自分にインポートしawakeFromNibたり、配列に入れたりできないようです。

AGImagePickerController を呼び出すコードは次のとおりです。

 -(IBAction) cameraRoll {AGImagePickerController *imagePickerController = [[AGImagePickerController alloc] initWithFailureBlock:^(NSError *error) {

        if (error == nil)
        {
            NSLog(@"User has cancelled.");
            [self dismissModalViewControllerAnimated:YES];
        } else
        {     
            NSLog(@"Error: %@", error);

            // Wait for the view controller to show first and hide it after that
            double delayInSeconds = 0.5;
            dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC);
            dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
                [self dismissModalViewControllerAnimated:YES];
            });
        }

        [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault animated:YES];

    } andSuccessBlock:^(NSArray *info) {
        NSLog(@"Info: %@", info);
        [self dismissModalViewControllerAnimated:YES];

        [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault animated:YES];
    }];

    [self presentModalViewController:imagePickerController animated:YES];
    [imagePickerController release];
}

私のawakeFromNibで:

- (void)awakeFromNib
{    
    if (self) {

        self.images = [NSMutableArray arrayWithObjects:@"111.jpg",
                       @"112.jpg",
                       @"113.jpg",
                       @"114.jpg",
                       @"115.jpg",
                       @"116.jpg",
                       @"117.jpg",
                       @"118.png",
                       @"119.jpg",
                       @"120.jpg",
                       nil];

    }
}

次に、カルーセルにこれを実装します。

- (UIView *)carousel:(iCarousel *)carousel viewForItemAtIndex:(NSUInteger)index
{
    //create a numbered view
    UIView *view = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[images objectAtIndex:index]]];
    return view;
}
4

1 に答える 1

5

info arrayNSLog ステートメントを使用して内容を確認できるはずです。そのログ ステートメントの内容を確認すると役に立ちました。

ここでこれを見つけましたが、うまくいくかもしれません:

for (i = 0; i < info.count; i++) {
     ALAssetRepresentation *rep = [[info objectAtIndex: i] defaultRepresentation];
     UIImage * image  = [UIImage imageWithCGImage:[rep fullResolutionImage]];
}

編集

ユーザーが画像を選択した後、画像を (メモリに保存するか、ファイルに書き込むことによって) 保存する必要があります。それらをファイルに書き込みたい場合は、次のように実行できます。

[UIImageJPEGRepresentation(image, 1.0) writeToFile:jpgPath atomically:YES];

AGImagePickerController コードがクラスにある場合は、画像を配列iCarouselに追加するだけです。imagesあなたsuccessBlockは次のようになります:

self.images = [NSMutableArray new];

for (i = 0; i < info.count; i++) {
     ALAssetRepresentation *rep = [[info objectAtIndex: i] defaultRepresentation];
     UIImage * image  = [UIImage imageWithCGImage:[rep fullResolutionImage]];
     [self.images addObject:image];
}

そして最後に、iCarousel コードで、画像配列またはディスク (画像を保存する場所に応じて) から画像を読み取る必要があります。それらをメモリに保存する場合、コードは次のようになります。

- (UIView *)carousel:(iCarousel *)carousel viewForItemAtIndex:(NSUInteger)index
{
    return [[UIImageView alloc] initWithImage:[self.images objectAtIndex:index]];
}

または、画像をディスクに保存することにした場合は、 を使用して UIImage オブジェクトを再作成できます[UIImage imageWithContentsOfFile:filePath];

于 2012-05-26T16:01:22.487 に答える