2010-07-24 12 views
1

터치했을 때 이미지가 사라질 수 있도록 어떻게 만들 수 있습니까?UIImageView의 코코아 터치 터치

다음은 이미지를 만드는 데 필요한 코드입니다. 화면에 무작위로 표시되므로 터치 한 후 사라지고 새 장소의 새 이미지가 나타납니다.

-(void)drawStarsAndDetectTouches{ //uses random numbers to display a star on screen 
    //create random position 
    int xCoordinate = arc4random() % 267; 
    int yCoordinate = arc4random() % 420; 

    //make sure it doesnt draw onto titiles 
    if (yCoordinate <= 40) { 
     yCoordinate = arc4random() % 420; 
    } 

    UIImageView *starImgView = [[UIImageView alloc] initWithFrame:CGRectMake(xCoordinate, yCoordinate, 58, 40)]; //create ImageView 
    starImgView.image = [UIImage imageNamed:@"star.png"]; 

    [self.view addSubview: starImgView]; 

    [starImgView release]; 
} 

답변

1

머리 위로부터 나는 이것을 달성 할 수있는 두 가지 방법을 생각해 볼 수 있습니다.

UIImageView 대신 UIButton으로 작업하십시오. 인터페이스 빌더에서 버튼의 유형을 "custom"로 설정하고 단추의 배경 이미지로 이미지를 선택하십시오. IBAction을 버튼에 할당하고 작업에서 보이지 않게하십시오.

어떤 이유로 든 UIImageView을 사용해야하는 경우 -touchesBegan:inView:을 재정의하는 하위 클래스를 만듭니다. 또한 이미지보기의 userInteractionEnabled 속성을 YES으로 설정하여 사용자가보기에 닿을 때마다 -touchesBegan:inView: 선택기가 호출되도록해야합니다. UIImageView에 대한 해당 속성의 기본값은 NO이므로 마지막 단계가 중요합니다.

업데이트 여기 당신이 프로그램이 작업을 수행해야하는 경우에 버튼 접근을 시작하는 몇 가지 예제 코드입니다 :

UIButton* btn = [UIButton buttonWithType:UIButtonTypeCustom]; 
[btn setBackgroundImage:img forState:UIControlStateNormal]; 
[btn addTarget:self action:@selector(buttonTouched:) forControlEvents:UIControlEventTouchUpInside]; 

[self.view addSubview:btn]; 
+0

을 나는 사용자 정의 버튼을 사용하려면 내가 편집 할 수 있습니다 (쉬운 것 같습니다) 내 위의 코드는 버튼이 될까요? 프로그래밍 방식으로 모든 작업을 수행해야하기 때문에 – user377419

+1

그래, 작동해야합니다. 내 대답에 내가 편집 한 것과 같은 것을 할 수 있다고 생각합니다. – Benjamin