簡體   English   中英

將手勢識別器添加到UIImage,而不是UIImageView

[英]Adding gesture recognizer to UIImage, not UIImageView

我有一個UIImageView ,在Interface Builder中將其``查看模式''設置為``寬高比''。我想將手勢識別器僅添加到UIImageView內的圖像中,以澄清我的意思:

我有一個UIImageViewbounds.size.width = 100; bounds.size.height = 100; 我有一個大小為100x50的UIImage 因此,當我將UIImage添加到UIImageView ,存在一些空間,該空間的頂部為25,底部為25。 但是我不想在用戶點擊這些空間時識別他/她的點擊。 我只想知道用戶何時點擊UIImage

我怎樣才能做到這一點?

您必須將手勢識別器添加到imageView。 您可以使用手勢識別委托方法來執行以下操作:

- gestureRecognizerShouldBegin:
//OR
- gestureRecognizer:shouldReceiveTouch:

然后,您可以找出用戶在imageView中點擊的位置,並計算觸摸是落在imageView的圖像內部還是圖像外部。

您可以使用以下方法執行此操作:

CGPoint tapPoint = [gestureRecognizer locationInView:imageView];
// use tap point to compute if it lands inside the image.

由於UIImageNSObject擴展而來,因此無法向其中添加UITapGestureRecognizer ,而必須向UIImageView本身添加手勢。 然后在任何UIGestureRecognizer委托方法中:

- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer;

要么

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch;

UIImageView獲取觸摸的位置。 然后通過使用CGPoint location = [_gesture locationInView:yourImageView]獲取觸摸點,現在使用鏈接獲取圖像的幀。 現在,使用以下命令檢查該點是否在圖像的框架中:

bool CGRectContainsPoint ( CGRect rect, CGPoint point );

這可能對您有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM