UIImagerPicker "Move and Scale" не работает - PullRequest
1 голос
/ 27 января 2012

Я использую средство выбора изображений, чтобы сделать фотографию, а затем перейти к экрану редактирования. Когда программа попадает на экран редактирования, хотя внизу написано «Переместить и масштабировать», она не позволяет мне перемещать или масштабировать изображение. Элементы управления кажутся мертвыми. Я переместил вид наложения в верхнюю часть экрана, чтобы убедиться, что он не мешает элементам управления. Вот мой код для настройки средства выбора изображений:

- (void)setupImagePicker:(UIImagePickerControllerSourceType)sourceType

{
    self.imagePickerController.sourceType = sourceType;

    if (sourceType == UIImagePickerControllerSourceTypeCamera)
    {
        self.imagePickerController.showsCameraControls = YES;
        if (self.imagePickerController.allowsEditing==FALSE) 
        {
            self.imagePickerController.allowsEditing = TRUE;
        }
    [self.imagePickerController.cameraOverlayView addSubview:self.view];
    }

    if (sourceType == UIImagePickerControllerSourceTypeSavedPhotosAlbum)
    {
    }
}

Что мне нужно сделать, чтобы заставить работать элементы управления перемещением и масштабированием?

Ответы [ 3 ]

3 голосов
/ 27 января 2012

Несмотря на то, что мой оверлейный вид был разработан с шириной 320 х 44, у imagePicker cameraOverlayView по умолчанию 320 х 480, охватывающий вид изображения "Переместить и масштабировать" жесты перетаскивания и сжатия.Я отрегулировал размер камеры OverlayView и "Move and Scale" начал работать.Вот код для добавления cameraOverlayView (оверлей является self.view):

    CGRect overlayRect = self.view.frame;
    [self.imagePickerController.cameraOverlayView setFrame:overlayRect];
    [self.imagePickerController.cameraOverlayView addSubview:self.view];
1 голос
/ 27 января 2012

Вы должны создать / представить представление UIImagePicker, например, так:

if (![UIImagePickerController isCameraDeviceAvailable: UIImagePickerControllerSourceTypeCamera])
{
    //no camera available, notify the user then exit before crashing the app
    return;
}

//display picker control (no release, assume ARC)
UIImagePickerController * uiimage_picker = [[UIImagePickerController alloc] init];
[uiimage_picker setSourceType:UIImagePickerControllerSourceTypeCamera];
[uiimage_picker setAllowsEditing:YES];

[uiimage_picker setDelegate: self];    
[self presentModalViewController:uiimage_picker animated:YES];

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

0 голосов
/ 25 мая 2013

На момент инициализации

UIImagePickerController  *imagepicker=[[UIImagePickerController alloc]init];
            imagepicker.delegate=self;
            imagepicker.allowsEditing = YES;
            if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) {
                imagepicker.sourceType=UIImagePickerControllerSourceTypePhotoLibrary;
            }

А в методе делегата вы можете получить отредактированное изображение с ключом UIImagePickerControllerEditedImage

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{


    UIImage *img=[info objectForKey:UIImagePickerControllerEditedImage];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...