Klik Acara di UIImageView secara terprogram di ios


95

Saya menampilkan gambar dari kode di sini adalah kodenya

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

Saya ingin menangani acara sentuh di preArrowImage secara terprogram.


Ini mungkin beberapa kegunaan stackoverflow.com/questions/9008975/…
Gaz_Edge

Periksa jawaban ini akan membantu Anda http://stackoverflow.com/a/41328885/3177007
Mohamed Jaleel Nazir

Jawaban:


251

Tujuan-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")
}

untuk Swift 2 Anda harus mengganti Selector("tapDetected")dengan:"tapDetected:"
datayeah

Secara default singleTap.numberOfTapsRequired = 1, Selamat Coding Terima kasih
Ravi

'let singleTap = UITapGestureRecognizer (target: self, action: #selector (NavigationViewController.tapDetectedImage))'
Alex22

18

Cukup tambahkan a UITapGesturepada gambar tetapi ingat untuk membuat UserInteraction Diaktifkan .

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

6

Sekarang di 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")
}

4

Cepat 3

Di UIImageView, aktifkan 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!)
            }
        }
    }

3

Menggunakan papan cerita dengan view in view controller.
tampilan mungkin ImageView, UIView, UILabel, TextField atau pengontrol lainnya


Setelah memilih salah satu pengenal gerakan, seret ke pengontrol Anda.
Sekarang akan ditampilkan dalam "Garis besar dokumen" dan header dari pengontrol tampilan xib.

Ikon isyarat dalam garis dokumen keluar dan xib
Tarik isyarat ke UILable
Tarik isyarat ke UILable


Buat metode (IBAction) secara manual di file header


membuat metode IBAction di file header
Sekarang seret dari handler ke ikon isyarat di xib
Tautkan dengan ikon gerakan



0

Berikut opsi lain: Cheat.

Maksud saya, pikirkan secara lateral.

Siapkan gambar UII Anda seperti yang Anda inginkan, crop, aspek fit, apa pun.

Overlay ini dengan UIView (dimensi yang sama, posisi, dll.)

Setel latar belakang ke warna yang jelas, dan kelas ke UIControl.

Arahkan touch up inside event ke pawang Anda, dan voila.


Bahkan lebih mudah daripada UIView: Gunakan tombol dan hapus teks. ;)
Nef

0

Xamarin.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")
}
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.