Использование кнопки UIB для обновления изображения в UIImageView - PullRequest
0 голосов
/ 06 сентября 2011

Я действительно новичок в разработке приложений и создаю приложение (оно будет более сложным, но это лишь основа, которую я позже расширю). В настоящее время у меня есть вид с UIImageView и UIButton, код ниже. Я могу получить кнопку для установки изображения из папки ресурсов, но мне нужно, чтобы кнопка обновляла UIImageView новым изображением при каждом его нажатии, например. нажмите один раз = image1, дважды нажмите = image2 ... и т. д. Из того, что я читал, я думаю, что у меня должны быть изображения в массиве с ключом или чем-то, тогда я могу просто обновить его с помощью ++. Я знаю, что это действительно расплывчато, но как я уже сказал, я действительно новичок, поэтому любая помощь будет принята с благодарностью!

@interface NextImageViewController : UIViewController {

    IBOutlet UIImageView *imageView;    
}

- (IBAction) nextImagePush;

@end

@implementation NextImageViewController

- (IBAction) nextImagePush {

    UIImage *img = [UIImage imageNamed:@"image1"];
    [imageView setImage:img];    
}

Ответы [ 3 ]

1 голос
/ 06 сентября 2011

Вы можете просто создать NSArray или NSMutableArray и заполнить его всеми изображениями, которые хотите показать. Затем, используя переменную, видимую в глобальной области видимости (то есть поле вашего интерфейса), вы можете использовать

[imageView setImage:[arrayOfImages objectAtIndex:(index++ % [arrayOfImages count])]];

Этот код также покажет первое изображение после отображения последнего.

1 голос
/ 06 сентября 2011
@interface NextImageViewController : UIViewController {

    IBOutlet UIImageView *imageView;
    NSInteger imageCount;
    NSArray * imageArray;   
}

- (IBAction) nextImagePush;

@end

@implementation NextImageViewController

- (IBAction) nextImagePush {


    UIImage *img = [UIImage imageNamed:[imageArray objectAtIndex:imageCount]];
    [imageView setImage:img];    
    imageCount++;
    if (imageCount >= [imageArray count]){
        imageCount = 0;
    }

}

- (void) viewDidLoad {
    imageArray = [[NSArray alloc] 
        initWithObjects:@"image1", @"image2", @"image3", nil];
    imageCount = 0;
}

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

0 голосов
/ 06 сентября 2011

Действительно элементарный способ сделать это - установить целое число. Определите это как 0, и в первый раз, когда вы нажимаете кнопку, вы добавляете 1 к ней.

Это определенно не рабочий код, но он просто поможет вам начать. Я настоятельно рекомендую такую ​​книгу, как книга Big Nerd Ranch на iOS или Начало разработки для iPhone 4 .

-(IBAction)pic
if variable == 0 {
//show the first image
variable++; 
 }
else if variable == 1 {
//show the second image
variable++; 
 }
...