web-dev-qa-db-ja.com

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のタッチイベントをプログラムで処理したい。

85
Sumit Patel

Objective-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

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")
}
231
Vivek Sehrawat

画像にUITapGestureを追加するだけですが、serInteraction Enabledにすることを忘れないでください。

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

今すぐ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
Sakiboy

Swift

オンIImageView enable 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!)
            }
        }
    }
4
Jaleel Nazir

View Controllerのビューでストーリーボードを使用します。
view may be ImageView, UIView, UILabel, TextField or other controller


ジェスチャ認識エンジンのいずれかを選択したら、それをコントローラーにドラッグします。
[ドキュメントアウトライン]とビューコントローラーxibのヘッダーに表示されます。

Gesture icon in document out line and xib
ジェスチャーをUILableにドラッグ
Drag gesture to UILable


Manually create (IBAction)method in header file


ヘッダーファイルにIBActionメソッドを作成します
次に、ハンドラーからxibのジェスチャーアイコンにドラッグします。
Link it with gesture icon

3
Subhash

別のオプションがあります:チート。

つまり、横方向に考えます。

希望する方法、トリミング、アスペクトフィットなど、UIImageを設定します。

これをUIView(等しい寸法、位置など)でオーバーレイします

背景をクリアカラーに設定し、クラスをUIControlに設定します。

イベント内のタッチアップをハンドラーに向けて、出来上がり。

0
Raki

UIImageViewがStoryboardまたはNibから取得するIBOutletである場合、UIGestureRecognizerを画像ビューに追加し、ユーザーインタラクションを有効にして、IBActionをジェスチャレコグナイザーに接続できます。

詳細については、この質問に対する私の答えを確認してください: ストーリーボード上でUIImageViewをクリック可能にする方法(Swift)

0
xxtesaxx