programing

iOS에서 UIImageView에서 이벤트를 프로그래밍 방식으로 클릭합니다.

javaba 2023. 5. 29. 21:30
반응형

iOS에서 UIImageView에서 이벤트를 프로그래밍 방식으로 클릭합니다.

코드의 이미지를 표시합니다. 코드는 다음과 같습니다.

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

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

스위프트 5

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

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

목표-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");
  }

간단히 추가UITapGesture사용자 상호 작용을 활성화해야 합니다.

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

스위프트에서!

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에서 사용자 상호 작용 활성화

 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의 제스처 아이콘
제스처를 UI 사용 가능으로 끕니다.
제스처를 UI 사용 가능으로 끕니다.


헤더 파일에 수동으로 (IBAction) 메서드 만들기


헤더 파일에 IBAction 메서드 생성
이제 xib에서 핸들러에서 제스처 아이콘으로 끕니다.
제스처 아이콘과 연결

사마린.iOS

UIImageView preArrowImage; // also give it frame
var singleTap = new UITapGestureRecognizer(TapDetected);
singleTap.ShouldReceiveTouch -= TapGesture_ShouldReceiveTouch;
singleTap.ShouldReceiveTouch += TapGesture_ShouldReceiveTouch;
preArrowImage.UserInteractionEnabled = true;
preArrowImage.AddGestureRecognizer(singleTap)

bool TapGesture_ShouldReceiveTouch(UIGestureRecognizer recognizer, UITouch touch)
{
    return true;
}

void TapDetected(UITapGestureRecognizer tapGestureRecognizer)
{
    print("Imageview Clicked")
}

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

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

다음은 다른 옵션입니다.속이다.

제 말은, 옆으로 생각해보세요.

UI이미지를 원하는 방식, 잘라낸 방식, 화면 맞춤 방식 등으로 설정할 수 있습니다.

이 위에 UIV 뷰(동일한 치수, 위치 등)를 덧씌웁니다.

배경을 선명한 색으로 설정하고 클래스를 UIControl로 설정합니다.

내부 이벤트를 핸들러에게 가리키고 voila.

언급URL : https://stackoverflow.com/questions/17120476/click-event-on-uiimageview-programmatically-in-ios

반응형