2012-08-01 6 views
0

터치로 뷰에 이미지를 추가하는 작업. 지금까지 내 코드를 사용하면 화면을 터치 할 때 원하는만큼 여러 번 선택하여 동일한 이미지를 추가 할 수있었습니다. 추가 된 이미지 (확대/축소, 회전, 이동)를 조작 할 수 있도록 한 번에 하나씩 이미지를 추가 할 수 있기를 원합니다.터치로 하나의 이미지 만 추가하는 방법

허용하려면 코드를 어떻게 수정해야합니까?

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    UITouch * touch = [touches anyObject]; 
touchPoint = [touch locationInView:imageView]; 

    if (touchPoint.x > 0 && touchPoint.y > 0) 
    { 
    stampedImage = _imagePicker.selectedImage; 

    _stampedImageView = [[UIImageView alloc] initWithImage:stampedImage]; 
    _stampedImageView.multipleTouchEnabled = YES; 
    _stampedImageView.userInteractionEnabled = YES; 
    [_stampedImageView setFrame:CGRectMake(touchPoint.x, touchPoint.y, 80.0, 80.0)]; 
    _stampedImageView.center = touchPoint; 
    [imageView addSubview:_stampedImageView]; 
    [_stampedImageView release]; 

    } 
} 

고마워요!

답변

0

내가 원하는 것을 이해하면 UIImageView를 서브 클래스 화하고 해당 서브 클래스에서 touchesBegan (및/또는 제스처 인식기 메소드)을 구현해야합니다. 당신이 게시 코드에서 변경해야합니다

_stampedImageView = [[UIImageView alloc] initWithImage:stampedImage]; 

에 : CustomImageView이있는 UIImageView의 서브 클래스입니다

_stampedImageView = [[CustomImageView alloc] initWithImage:stampedImage]; 

. 이렇게하면 사용자 정의보기의 모든 터치는 포함 된보기 대신 해당 클래스의 코드에 의해 처리됩니다.

서브 클래 싱 된 imageView를 터치해도 동일한보기가 다시 추가됩니다. 이를 막으려면 마지막으로 선택한 이미지를 추적하고 이미지가 포함 된 이미지 뷰를 추가하지 않는 if 절을 넣으려면 속성을 추가해야합니다.

관련 문제