문제

나는 방금 iPhone 개발에 대해 언급되고 있으며 내가하고 싶은 일을 찾고있는 대답을 찾을 수없는 것 같습니다.

UiimageView를 프로그래밍 방식으로 만들고 터치 기능에 대한 이벤트 핸들러를 설정할 수 있어야합니다.

C#에서 나는 모양이있는 것을 가질 것입니다

버튼 B = 새 버튼 (); b.click+= 내 핸들러 코드

지금 나는 이것을 가지고있다

CGRect myImageRect = CGRectMake(0.0f, 0.0f, 141.0f, 151.0f);
UIImageView *myImage = [[UIImageView alloc] initWithFrame:myImageRect];

myImage.userInteractionEnabled = YES;
[myImage setImage:[UIImage imageNamed:@"myImage.png"]];
myImage.opaque = YES; // explicitly opaque for performance
[self.view addSubview:myImage];
[myImage release];

터치 이벤트를 무시하려면 어떻게해야합니까?

감사해요

도움이 되었습니까?

해결책

질문에 대한 완전한 답은 아니지만 다음 솔루션이 "Invisible-Button-workaround"를 수행하는 것이 더 좋을 것이라고 생각합니다. UIIMageView의 단순히 하위 클래스를 수행하고 다음 방법을 무시합니다.

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

 //your UIImageView has been touched :)

 //event -> "A UIEvent object representing the event to which the touches belong."

 //touches -> "A set of UITouch instances in the event represented by event that    represent the touches in the UITouchPhaseEnded phase."

}

도움이 되었기를 바랍니다...

다른 팁

"About"와 같은 아이콘이있는 메인 뷰가 있습니다. 해당 컨트롤러 (MainView)에서 TouchesBegan에 대한 이벤트 핸들러를 추가했습니다. 또한보기에 더 많은 아이콘이 있기 때문에 어떤보기가 "터치 된"뷰를 확인해야합니다. 내 UIIMAGEVIEW 인스턴스는 "AboutIMG"이고 사용자 상호 작용을 확인해야합니다 (예 : UI Builder-> Attributes Inspector of View).

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    UITouch *touch = [touches anyObject];
    if ([touch view] == aboutImg){
        [self ShowAbout];
    }
}

"사용자 상호 작용 활성화"를 확인하십시오. 이것은 가장 쉬운 솔루션입니다

이미지를 배경 이미지로 사용하는 사용자 정의 Uibutton 만 사용하십시오.

직접 할 수있는 방법을 찾지 못했습니다. UIImageView. 그러나 당신이 그것을 서브 클래스하고 그것을 무시한다면 nextResponder 방법 통제하에 대의원을 반환하는 방법은 당신이 후에 할 수 있습니다. 대의원을 서브 클래스의 속성으로 노출 한 다음 터치 이벤트를 위해 대의원에 전달하여 언제든지 변경할 수 있습니다.

다른 대답을 보았습니다 userInteractionEnabled: NO, 터치가 버튼으로 통과하도록합니다.

UIIMAGEVIEW와 관련이 필요하지 않습니다. UIBITTON을 사용하여 UIBIRTTON을 사용하여 사용자 정의를 사용하고 내부 작업을 추가 할 수 있습니다.

UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
btn.frame = CGRectMake(0,0,100,100); //edit for you own frame
UIImage *img = [UIImage imageNamed:@"myimage.png"];
[button setImage:img forState:UIControlStateNormal];

uiimageview와 함께 가려면 ImageView에 제스처를 추가해야합니다. 그렇지 않으면 uiimageview를 서브 클래스 한 다음 터치 이벤트를 사용할 수 있습니다.

OnClick 이벤트를 UIIMAGEVIEW 또는 UIVIEW에 추가하는 가장 쉬운 방법은 탭 제스처 인식기를 추가하는 것입니다.

UIImage *myImage = [UIImage imageNamed:@"myImage.png"];
UIImageView *myImageView = [[UIImageView alloc] initWithImage: myImage];

UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action: @selector(onImageViewClicked)];
singleTap.numberOfTapsRequired = 1;
singleTap.numberOfTouchesRequired = 1;
[self.myImageView addGestureRecognizer:singleTap];
[self.myImageView setUserInteractionEnabled:YES];
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top