[英]Adding gesture recognizer to UIImage, not UIImageView
我有一個UIImageView
,在Interface Builder中將其``查看模式''設置為``寬高比''。我想將手勢識別器僅添加到UIImageView
內的圖像中,以澄清我的意思:
我有一個UIImageView
其bounds.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.
由於UIImage
從NSObject
擴展而來,因此無法向其中添加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.