2011-03-15 2 views
2

UIButton을 사용하면 사용자가 단추를 클릭했음을 알 수 있습니다 (이미지가 회색으로 바뀝니다).(iphone) 이미지 뷰를 uibutton으로 두드리면 어떻게 표시하나요?

나는 UIImageView에서의 동작을 원하고 어떻게 할 수 있는지 궁금합니다.
또 다른 가능한 접근법은 UIButton을 사용하여 시각적으로 반응하게합니다. (회색으로 변합니다.)
그러나 터치 이벤트가 발생하지 않았습니다 (터치 이벤트를 superview 또는 nextresponder에 전달해야하기 때문에).

감사합니다.

  • 편집

사실/이동 /있는 UIButton 및 이 touchesBegan을 구현하는 서브 클래스 결국 highlightning에 대한

- (void) touchesBegan: (NSSet *) touches withEvent: (UIEvent *) event 
{ 
    [super touchesBegan: touches withEvent: event]; 
    [self.nextResponder touchesBegan: touches withEvent: event]; 
} 

먼저 touchesBegan, 내가 필요로하는 적절한 처리를 위해
두 번째를했다.

이 touchesBegan를 호출 원더 괜찮을 것 ..

답변

1

나는 당신의 질문에 대한 대답을 얻었다.

인터페이스 빌더를 통해 UIImageView를 보면서 .h의 IBOutlet으로 만들고 이름을 "img"로 지정하십시오. 하고있는 UIImageView에 highlightedImage라는 속성이있다 인하는 .m

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 

UITouch *touch = [[event allTouches] anyObject]; 
if (CGRectContainsPoint([img frame], [touch locationInView:self.view])) { 

    img.alpha = 0.5; 
    [UIView beginAnimations:@"frame" context:nil]; 
    [UIView setAnimationDuration:1.0]; 
    [UIView setAnimationDelegate:self]; 
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; 

    img.alpha = 1.0; 

    [UIView commitAnimations]; 

    NSLog(@"Image Touched"); 

} 
} 
1

이 코드를 작성합니다. 이 속성을 설정하면 UIImageView가 터치 될 때이 이미지로 변경됩니다.

+0

아 : 당신은 당신이 모든 터치 이벤트를 잡을 그래서 같은 기본보기로에 전달할 수 있습니다 (그 차례에 UIView의 하위 클래스에)있는 UIButton 하위 클래스 경우 강조 표시된 상태로 다른 이미지를 제공해야합니다. – eugene

+0

내가이 경로를 따라 가야한다면 어떻게 highlightedimage를 만들어야합니까? (선택된 버튼에 나타난 것처럼) 알파를 변경합니까? – eugene

+0

일반적으로 CATransition 애니메이션 효과를 추가하여 페이드 아웃 애니메이션을 만듭니다. – AechoLiu

0

두 번째 옵션이 가장 좋습니다. UIButton을 사용하고 이미지 또는 배경 이미지를 설정하기 만하면됩니다. 나는 '돈 있으면 확실히 좋은 것, 보았다

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event 
{ 
    // returning nil will ignore touches on this view 
    return nil; 
} 
+0

여전히 시각적으로 이미지가 바뀌겠습니까? – eugene

관련 문제