Слайд-шоу с несколькими изображениями, нуждающимися в кнопке предыдущего изображения. - PullRequest
0 голосов
/ 07 января 2012

Я создал массив изображений.Я хочу создать предыдущую кнопку с изображением, но у меня возникли проблемы.Это мой предыдущий код кнопки:

-(IBAction)changeImage:(id)sender
{
    int ptr = 0;

    if (ptr <= 5)
    { 
         ptr--;
         ptr = 5;
         [imageView setImage:[images objectAtIndex:ptr]];
    }

    NSArray *images = [[NSArray alloc] initWithObjects:@"Americans.png",@"Approach.png",@"Arianny.png",@"Atoms.png",@"Australia.png",@"Average.png",nil];

    [imageView setImage:[UIImage imageNamed:[images objectAtIndex:ptr]]];
}

1 Ответ

0 голосов
/ 07 января 2012

Я не знаю, что код, который вы показываете (changeImage), должен быть кодом, который вы хотите использовать для предыдущего изображения, или это просто код, который вы уже предназначали для какой-то другой цели, чтобы изменить изображение.Но в этом коде есть несколько ошибок.

Область действия переменной ptr находится только внутри блока метода, поэтому она всегда будет установлена ​​на 0, затем уменьшена, а затем на 5. Таким образом, вы всегда будете в конечном итоге показывать изображение с индексом 5, когдаМетод changImage выполняется.Кроме того, если у вас есть два метода, которые ссылаются на массив изображений, этот массив должен быть иваром, который вы можете настроить в своем коде инициализации.

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

Итак, вам нужно два метода.Один метод генерирует случайный индекс в диапазоне допустимых индексов массива изображения.Другой метод показывает изображение, которое было показано ранее.

Так что вам нужно будет настроить ивар, который содержит индекс последнего показанного изображения.Первый метод должен заменить значение в этом ivar непосредственно перед генерацией нового случайного индекса.Второй (showPrevious) метод будет использовать значение этого ивара 'lastIndex', чтобы выбрать индекс, к которому вы хотите вернуться назад.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...