[iphone] iOS에서 프로그래밍 방식으로 UIImageView의 이벤트를 클릭하십시오.

여기 코드에서 이미지를 표시하고 있습니다.

UIImageView *preArrowImage =[[UIImageView alloc]init ];
preArrowImage.image =[UIImage imageNamed:@"arrowprev.png"];
preArrowImage.frame = CGRectMake(20, 60, 10, 30);
[self.view addSubview:preArrowImage];

프로그래밍 방식으로 preArrowImage의 터치 이벤트를 처리하고 싶습니다.



답변

목표 -c

UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapDetected)];
singleTap.numberOfTapsRequired = 1;
[preArrowImage setUserInteractionEnabled:YES];
[preArrowImage addGestureRecognizer:singleTap];

-(void)tapDetected{
    NSLog(@"single Tap on imageview");
  }

SWIFT 4.2 / 5

let preArrowImage : UIImageView // also give it frame
let singleTap = UITapGestureRecognizer(target: self, action: #selector(tapDetected))
preArrowImage.isUserInteractionEnabled = true
preArrowImage.addGestureRecognizer(singleTap)

//Action
@objc func tapDetected() {
    print("Imageview Clicked")
}


답변

단순히 UITapGesture이미지에를 추가 하되 UserInteraction Enabled로 설정 하는 것을 잊지 마십시오 .

    UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self
    action:@selector(singleTapGestureCaptured:)];
    [preArrowImage addGestureRecognizer:singleTap];
    [preArrowImage setMultipleTouchEnabled:YES];
    [preArrowImage setUserInteractionEnabled:YES];


답변

이제 Swift에서!

let singleTap = UITapGestureRecognizer(target: self, action: Selector("tapDetected"))
singleTap.numberOfTapsRequired = 1

preArrowImage.userInteractionEnabled = true
preArrowImage.addGestureRecognizer(singleTap)


//Action
func tapDetected() {
    println("Single Tap on imageview")
}


답변

스위프트 3

있는 UIImageView UserInterAction 가능

 override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
        super.touchesEnded(touches, with: event)

        if let touch = touches.first {
            if touch.view == self.imgVwPostPreview { //image View property

                //Do your actions
                //self.delegate?.didClickOnCellImageView(indexPath: self.cellIndexPath!)
            }
        }
    }


답변

뷰 컨트롤러에서보기와 함께 스토리 보드 사용.
보기는 ImageView, UIView, UILabel, TextField 또는 기타 컨트롤러 일 수 있습니다.

제스처 인식기 중 하나를 선택한 후 컨트롤러로 드래그합니다.
이제 “문서 개요”와 뷰 컨트롤러 xib의 헤더에 표시됩니다.

문서 아웃 라인 및 xib의 제스처 아이콘

UILable로 제스처 드래그
UILable로 제스처 드래그

헤더 파일에서 (IBAction) 메소드 수동 생성

헤더 파일에 IBAction 메소드 생성

이제 핸들러에서 xib의 제스처 아이콘으로 드래그하십시오.
제스처 아이콘과 연결


답변

UIImageView가 Storyboard 또는 Nib에서 가져온 IBOutlet 인 경우 UIGestureRecognizer를 이미지보기에 추가하고 사용자 상호 작용을 활성화하고 IBAction을 제스처 인식기에 연결할 수 있습니다.

자세한 내용은이 질문에 대한 내 대답을 확인하십시오 : 스토리 보드에서 UIImageView를 클릭 가능하게 만드는 방법 (빠른)


답변

여기 또 다른 옵션이 있습니다. 치트.

내 말은, 옆으로 생각하세요.

원하는 방식, 자르기, 가로 세로 맞춤 등 UIImage를 설정하십시오.

이를 UIView (동일한 크기, 위치 등)로 오버레이합니다.

배경을 clearcolour로 설정하고 클래스를 UIControl로 설정합니다.

이벤트 내부의 터치 업을 핸들러에 가리키면 짜잔합니다.