Вопрос по iphone, ios, xcode – Определите выбранные фотографии в AGImagePickerController

-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];
}

По моему проснулся от Nib:

- (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;
}

Ваш Ответ

1   ответ
5

Вы должны быть в состоянии посмотреть на содержимоеinfo array используя ваше заявление NSLog. Было бы полезно увидеть содержимое этого оператора журнала.

я нашел этоВот и это может сработать:

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

Edit:

Вам необходимо сохранить изображения (либо в памяти, либо записав их в файлы) после того, как пользователь выберет их. Если вы хотите записать их в файлы, вы можете сделать это так:

[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];.

этот код входит в successBlock предоставленного вами кода. не видя ваш код iCarousel, я не могу вам помочь во многом другом.
Я отредактировал свой ответ. Надеюсь, ты сможешь проверить это снова. Bazinga
Собираюсь ли я положить его в пробуждение от nib моей iCarousel? Bazinga
что такоеjpgPath и мой iCarousel находится в другом классе, поэтомуinfo является "необъявленным идентификатором". что делать? Bazinga
Я смог сохранить его на пути. Но это был не образ. когда я переименую его с .png. он отображает только 1 изображение. Помогите, пожалуйста Bazinga

Похожие вопросы