2014-04-27 2 views
0

배열을 사용하여 특정 UIImageViews에 이미지를로드하려고합니다. 내 스토리 보드에 10 개의 UIImageView를 설정했습니다.기존 스토리 보드 UIImageView에 이미지를 올바르게로드 하시겠습니까?

또한 한 UIImageView의 프레임이 다른 UIImageView와 교차 할 때마다 실행되는 Game Over 메서드가 있습니다. 어떤 이유로, 배열을 사용하여 UIImageViews를로드하려고 할 때마다 Game Over 메서드가 즉시 트리거됩니다. 나는 이유를 알 수 없다. initWithImage 행을 제거하면 게임이 정상적으로 실행됩니다. 어떤 아이디어?

- (void)viewDidLoad 
{ 
    KanaCharacters = [[NSArray alloc] initWithObjects:[UIImage imageNamed:@"a.png"],... 
        nil]; 


int imageDisplay = arc4random_uniform([KanaCharacters count]); 

Monster1 = [[UIImageView alloc] initWithImage:[KanaCharacters objectAtIndex:imageDisplay]]; 
} 

-(void) Collision 
{ 
    if ((CGRectIntersectsRect(Monster1.frame, Ship.frame)) && (Monster1Hit==NO)) 
    { 
     [self GameOver]; 
    } 
} 

-(void)GameOver 
{ 
    WinOrLose.hidden=NO; 
    WinOrLose.text = [NSString stringWithFormat:@"You Lose!"]; 
} 
+0

스토리 보드에서 uiimageview (스토리 보드에 monster1입니까?)가 있으면 viewDidLoad에 다시 초기화하고 초기화하지 말아야합니다. 대신 setImage를 호출하십시오. 그렇지 않으면 새 UIImageView가 viewcontroller의 뷰에 추가되지 않으므로 addSubview를 사용하여 수동으로 추가해야합니다. – guenis

+0

죄송합니다. 설명하기가 다소 힘듭니다. 당신은 맞습니다, Monster1은 이미 스토리 보드 내의 ImageView입니다. 나는 setImage를 역시 생각했지만, UIImageView를위한 메소드는 아니고, UIImage만을위한 메소드이다. 배열에서 UIImage로 이미지를 설정하고 UIImageView에 해당 변수를 어떻게 사용해야합니까? (죄송합니다. 새로운 기능) – Michelle

+0

이미지는 [UIImageView] (https://developer.apple.com/library/ios/documentation/uikit/reference/UIImageView_Class/Reference/Reference.html#//apple_ref/) 속성입니다. occ/instp/UIImageView/image) setImage를 호출하거나 monster1.image = [UIImage ...]를 호출 할 수 있습니다. – guenis

답변

0

Monster1 및 Ship.frame에서 이미지를 한 번 실행하면 충돌이 발생할 것으로 생각됩니다. 당신의 함선이있는 곳에 당신의 몬스터가 배치되어있는 것으로 의심됩니다.

이미지를보기에 추가하기 전에 우주선이나 괴물을 움직여야 할 수 있습니다.

관련 문제