2012-04-17 3 views
0

Я сделал 26 кнопок, AZ, и когда я нажимаю на них, изображение кнопки, которую я нажал, будет отображаться на изображении, когда я нажимаю A, отображается A, Когда я нажимаю B, он будет отображать B и т. Д.Изображения в массиве, КАК?

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

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

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

надежда кто-то может сказать мне здесь картина:

http://img213.imageshack.us/img213/4500/questionow.png

благодаря

Это то, что я получил в настоящее время .h

IBOutlet UIImageView *imageview1; 
    IBOutlet UIImageView *imageview2; 
    IBOutlet UIImageView *imageview3; 
    IBOutlet UIImageView *imageview4; 
    IBOutlet UIImageView *imageview5; 
    IBOutlet UIImageView *imageview6; 
} 

-(IBAction)showA; 
-(IBAction)showB; 
-(IBAction)showC; 
-(IBAction)showD; 
-(IBAction)showE; 
-(IBAction)showF; 
-(IBAction)showG; 
-(IBAction)showH; 
-(IBAction)showI; 
-(IBAction)showJ; 
-(IBAction)showK; 
-(IBAction)showL; 
-(IBAction)showM; 
-(IBAction)showN; 
-(IBAction)showO; 
-(IBAction)showP; 
-(IBAction)showQ; 
-(IBAction)showR; 
-(IBAction)showS; 
-(IBAction)showT; 
-(IBAction)showU; 
-(IBAction)showV; 
-(IBAction)showW; 
-(IBAction)showX; 
-(IBAction)showY; 
-(IBAction)showZ; 

.m

-(IBAction)showA { 

UIImage *img = [UIImage imageNamed:@"A.png"]; 

[imageview1 setImage:img]; 

} 

-(IBAction)showB { 

UIImage *img = [UIImage imageNamed:@"B.png"]; 

[imageview1 setImage:img]; 

} 

И т. Д.

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

благодарит Дон

+3

Вы пробовали просто устанавливая свои позиции? –

ответ

1

Вы всегда можете сделать:

- (void)setNextImage:(UIImage *)image { 
    if (imageview1.image == nil) { 
     [imageView1 setImage:image] 
    } else if (imageView2.image == nil){ 
     [imageView2 setImage:image] 
    } // ... Through all 6 images 
} 

, а затем в каждом из ваших действий кнопки просто позвоните:

[self setNextImage:img]; 

вместо установки его непосредственно.

+0

Сделал бы еще больше смысла помещать указатели imageView в массив и индексировать массив, чтобы выбрать, какой из них. –

+0

О, я согласен, но у него уже есть настройка таким образом .... – lnafziger

+0

Оке спасибо вам обоим, у вас возник вопрос, когда я это сделаю, так ли это плохо? потому что тогда я буду использовать свой путь горячими ликами, но если это сработает, и все в порядке, тогда это хорошо для меня. но я не знаю, что вы имеете в виду, но я посмотрю. Услышал от 2-3 парней, что с помощью массива было так много, что в течение всего дня боролся с этим, несмотря на то, что в то время как у меня было то, о чем я думал, сначала позвольте мне попробовать! спасибо –

0

Использование массива не сложно. Просто объявляйте либо стандартный массив C из UIImageView *, либо NSArray, например: [NSArray arrayWithObjects:imageView1, imageView2 ... imageView6, nil].

Тогда есть позиция счетчика pos объявлена ​​на уровне экземпляра, и вы просто сделать:

[imageViewArray objectAtIndex:pos].image = imageParm; pos++; 

(. Или, для массива C, imageViewArray[pos].image = imageParm; pos++;)

+0

Я попробую это завтра, чтобы я знал, как это работает. Спасибо, вы знаете, почему он разбился сейчас, когда я ударил вторую букву, но когда я останавливаю Xcode и возвращаюсь к симулятору, запустите приложение снова, он работает нормально? когда Xcode открывается, он делает else else if (imageView2.image == nil) { [imageView2 setImage: image] зеленая линия, а затем говорит разбивка –

+0

Что значит «разбивка»? Если вы имеете в виду «точку останова», то, вероятно, вы установили ее в этом месте - в левом поле будет маркер стрелки. –

+0

Да, извините, точка останова! –

Смежные вопросы