私はここのコードから画像を表示しています
UIImageView *preArrowImage =[[UIImageView alloc]init ];
preArrowImage.image =[UIImage imageNamed:@"arrowprev.png"];
preArrowImage.frame = CGRectMake(20, 60, 10, 30);
[self.view addSubview:preArrowImage];
PreArrowImageのタッチイベントをプログラムで処理したい。
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")
}
画像にUITapGesture
を追加するだけですが、serInteraction 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")
}
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!)
}
}
}
View Controllerのビューでストーリーボードを使用します。
ジェスチャ認識エンジンのいずれかを選択したら、それをコントローラーにドラッグします。
[ドキュメントアウトライン]とビューコントローラーxibのヘッダーに表示されます。
ジェスチャーをUILableにドラッグ
ヘッダーファイルにIBActionメソッドを作成します
次に、ハンドラーからxibのジェスチャーアイコンにドラッグします。
別のオプションがあります:チート。
つまり、横方向に考えます。
希望する方法、トリミング、アスペクトフィットなど、UIImageを設定します。
これをUIView(等しい寸法、位置など)でオーバーレイします
背景をクリアカラーに設定し、クラスをUIControlに設定します。
イベント内のタッチアップをハンドラーに向けて、出来上がり。
UIImageViewがStoryboardまたはNibから取得するIBOutletである場合、UIGestureRecognizerを画像ビューに追加し、ユーザーインタラクションを有効にして、IBActionをジェスチャレコグナイザーに接続できます。
詳細については、この質問に対する私の答えを確認してください: ストーリーボード上でUIImageViewをクリック可能にする方法(Swift)