여기 코드에서 이미지를 표시하고 있습니다.
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!)
}
}
}
답변
뷰 컨트롤러에서보기와 함께 스토리 보드 사용.
제스처 인식기 중 하나를 선택한 후 컨트롤러로 드래그합니다.
이제 “문서 개요”와 뷰 컨트롤러 xib의 헤더에 표시됩니다.
UILable로 제스처 드래그
헤더 파일에 IBAction 메소드 생성
이제 핸들러에서 xib의 제스처 아이콘으로 드래그하십시오.
답변
UIImageView가 Storyboard 또는 Nib에서 가져온 IBOutlet 인 경우 UIGestureRecognizer를 이미지보기에 추가하고 사용자 상호 작용을 활성화하고 IBAction을 제스처 인식기에 연결할 수 있습니다.
자세한 내용은이 질문에 대한 내 대답을 확인하십시오 : 스토리 보드에서 UIImageView를 클릭 가능하게 만드는 방법 (빠른)
답변
여기 또 다른 옵션이 있습니다. 치트.
내 말은, 옆으로 생각하세요.
원하는 방식, 자르기, 가로 세로 맞춤 등 UIImage를 설정하십시오.
이를 UIView (동일한 크기, 위치 등)로 오버레이합니다.
배경을 clearcolour로 설정하고 클래스를 UIControl로 설정합니다.
이벤트 내부의 터치 업을 핸들러에 가리키면 짜잔합니다.