2012-04-17 2 views
0

나는 26 개의 버튼을 만들었고 내가 클릭하면 내가 누른 버튼의 이미지가 이미지보기에 표시됩니다. A를 클릭하면 A가 표시되고 B를 클릭하면 B가 표시됩니다.배열의 이미지, 방법?

내가 가지고있는 문제는 그들이 서로 옆에 표시되지 않는다는 것입니다, 나는 6 개의 이미지 뷰를 가지고 있으며 첫 번째 글자는 첫 번째 상자의 두 번째 글자 두 번째 상자 등을 채우고 싶습니다.

어떻게 해야할지 모르겠군요. 이것, 나는 지금 많은 방법을 시도해 왔으며 배열을 사용해야 할 필요가 있음을 확신 할 수 있습니다. 코드를 올바르게 만들 수 없습니다.

이것은 내가 지금 내가 1 위를 넘었 기 때문에 2 위와 같습니다. 다음에 ofc를 표시하는 것을 제외하고는. 누군가가 여기 말해 줄 수

희망은 사진입니다 : 지금있는 .h 이것은 내가 가진 무엇

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

감사

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

오케는 두 분 모두에게 감사합니다. 내가 이런 식으로 할 때의 질문은 나쁘지 않습니까? 왜냐하면 그 때 나는 당신의 방식으로 뜨거운 핥기를 사용할 것이기 때문에 작동하지만 괜찮 으면 그것은 나에게 좋다. 그러나 나는 당신이 의미하는 것을 정말로 알지 못하지만 그 때 그것을 볼 것입니다. inafzigers 방식이 내가 처음에 나 자신을 생각하고 있었던 것이었지만 배열과 함께 그렇게 가능한 하루 종일 고투하고있는 2-3 명의 사람들로부터 들었다. 덕분에 –

0

배열을 사용하는 것은 어렵지 않습니다. 그냥 UIImageView * 또는 NSArray의 표준 C 배열을 선언하면 다음과 같이 삽입됩니다 : [NSArray arrayWithObjects:imageView1, imageView2 ... imageView6, nil].

는 다음 위치 카운터 pos은 인스턴스 레벨에서 선언이 있고, 당신은 단순히 수행

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

(. 또는, C의 배열, imageViewArray[pos].image = imageParm; pos++;)

+0

나는 내일 이것을 시험해 보겠습니다. 어떻게 작동하는지 알게 될 것입니다. 감사합니다. 왜 두 번째 문자를 눌렀을 때 고장이 났는지 알 수 있습니다.하지만 Xcode를 멈추고 시뮬레이터로 돌아가서 다시 실행하면 다시 작동합니다. Xcode가 열리면} else if (imageView2.image == nil) { [imageView2 setImage : image]가 녹색으로 표시되고 고장이라고 표시됩니다. –

+0

"고장"이란 무엇입니까? "브레이크 포인트"를 의미한다면 그 위치에 하나를 설정했을 가능성이 있습니다. 왼쪽 여백에 일종의 화살표 마커가 있습니다. –

+0

예. 미안 해요! –

관련 문제