Пользовательское наложение с UIImagePickerControllerSourceTypeSavedPhotosAlbum - PullRequest
0 голосов
/ 24 августа 2011

Мне нужно позволить пользователю выбрать фотографию из библиотеки фотографий и иметь возможность изменять размер и обрезать свое изображение при использовании наложения изображений. Использование UIImagePickerControllerSourceTypeCamera с cameraOverlayView хорошо, но UIImagePickerControllerSourceTypeSavedPhotosAlbum не поддерживает это свойство.

Как ни странно, когда я добавляю представление наложения в качестве вспомогательного вида с альфа-значением, установленным на половину, наложение появляется на экране выбора фотографий, но это не будет соответствовать процессу утверждения Apple.

-(void)choosePhotoDialog:(id)sender
{ 
    UIBarButtonItem * barThing = (UIBarButtonItem*)sender;

    OverlayView * overlay = [[OverlayView alloc] initWithFrame: CGRectMake(0, 0, SCREEN_WIDTH_IPHONE, SCREEN_HEIGTH_IPHONE)
                                               andPhotoOverlay: [dict objectForKey:@"imageUrl"]];
    [overlay setUserInteractionEnabled: NO];

    UIImagePickerController * picker = [[UIImagePickerController alloc] init];

    switch (barThing.tag) 
    {
        case 0: [picker setSourceType: UIImagePickerControllerSourceTypeCamera];
                [picker setShowsCameraControls: YES];  
                [picker setCameraOverlayView: overlay];
            break;
        case 1: [picker setSourceType: UIImagePickerControllerSourceTypeSavedPhotosAlbum];
                [picker.view addSubview: overlay];
                [overlay setAlpha: 0.5f];
            break;
    }

    [picker setDelegate: self];
    [picker setAllowsEditing: YES];
    [picker setNavigationBarHidden: YES];
    [picker setWantsFullScreenLayout: YES];
    [self presentModalViewController:picker animated:YES];  
    [picker release];
}

Вопрос

Как правильно разрешить пользователю выбирать фотографию из фото-библиотеки с наложением, используя UIImagePickerControllerSourceTypeSavedPhotosAlbum?

Overlay on Thumbs Overlay on Photo


Решено

По сути, мне нужно было написать 3 отдельных класса и объединить их, чтобы создать собственный настраиваемый вид для редактирования фотографий, который также сохраняет изменения пинч / зум / поворот.

1 Ответ

1 голос
/ 20 декабря 2011

В итоге я написал несколько классов:

  1. Класс OverlayView, который является UIView и просто извлекает изображение .png с прозрачностью и являетсясамый нижний слой.

  2. класс InteractiveWallpaper, который является UIImageView и обрабатывает все события touch, включая события преобразования.

  3. И, наконец, класс EditingView, который является UIViewController.Это добавляет 2 ранее упомянутых вида, а также сохраняет фотографию, отредактированную пользователем.

Это также позволило мне настроить поведение вида.Когда пользователь касается импортированной фотографии, самая верхняя фотография уменьшает свое альфа-значение, позволяя пользователю по-прежнему видеть наложение, в то время как импортированная фотография становится более видимой.

...