iOS: проблемы с UIImageView - PullRequest
       7

iOS: проблемы с UIImageView

0 голосов
/ 30 марта 2012

Я очень плохо знаком с Objective-C, и у меня возникли проблемы с новичками. У меня есть приложение, которое имеет область, которая должна вести себя как фотогалерея. Вы нажимаете кнопку «Добавить изображение», и изображение, выбранное из рулона камеры, попадает в UIImageView. Это код, который я использую:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)img editingInfo:(NSDictionary *)editInfo {
    imageView.image = img;
    [[picker parentViewController] dismissModalViewControllerAnimated:YES];
}

Теперь я добавил несколько UIImageViews, чтобы они могли нажимать «Добавить изображение», и каждый раз, когда они выбирают изображение с камеры, изображение будет отображаться в следующем доступном UIImageView. Здесь у меня проблемы. Я не уверен, как это сделать, но вот код, который я пытался использовать для достижения этой цели:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)img editingInfo:(NSDictionary *)editInfo {
    if (imageView == nil) {
        imageView.image = img;
        [[picker parentViewController] dismissModalViewControllerAnimated:YES];
    }

    if (imageView2 == nil) {
        imageView2.image = img;
        [[picker parentViewController] dismissModalViewControllerAnimated:YES];
    }

    if (imageView3 == nil) {
        imageView3.image = img;
        [[picker parentViewController] dismissModalViewControllerAnimated:YES];
    }
}

У меня здесь два вопроса. Первая проблема заключается в том, что эта версия моего кода не добавляет изображения вообще, как первая версия кода, которую я разместил. Я подозреваю, что это потому, что imageView's не равны нулю по какой-то причине. Я не уверен, как это исправить. Вторая проблема заключается в том, что если этот код будет работать, все UIImageView будут отображать картинку, а не только следующий доступный UIImageView. Я пытался поставить "перерыв" после каждого оператора if, но, конечно, это вызвало ошибку, потому что это не цикл. Любая помощь или совет высоко ценится, спасибо!

Ответы [ 2 ]

2 голосов
/ 30 марта 2012

Вы проверяете, является ли imageView nil, а не изображение, которое оно содержит. Также вы хотите вернуться из функции, а не прерывать цикл. Попробуйте это:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)img editingInfo:(NSDictionary *)editInfo {
    if (imageView.image == nil) {
        imageView.image = img;
        [[picker parentViewController] dismissModalViewControllerAnimated:YES];
        return;
    }

    if (imageView2.image == nil) {
        imageView2.image = img;
        [[picker parentViewController] dismissModalViewControllerAnimated:YES];
        return;
    }

    if (imageView3.image == nil) {
        imageView3.image = img;
        [[picker parentViewController] dismissModalViewControllerAnimated:YES];
        return;
    }
}
1 голос
/ 30 марта 2012

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

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)img editingInfo:(NSDictionary *)editInfo {

    if (imageView.image == nil) {
        imageView.image = img;
        [[picker parentViewController] dismissModalViewControllerAnimated:YES];
    }

    else if (imageView2.image == nil) {
        imageView2.image = img;
        [[picker parentViewController] dismissModalViewControllerAnimated:YES];
    }

    else if (imageView3.image == nil) {
        imageView3.image = img;
        [[picker parentViewController] dismissModalViewControllerAnimated:YES];
    }
}
...