我確定這可能聽起來像一個noob問題,但不知何故我卡住了,我需要幫助。考慮一下我的uibutton,它的背景圖像有一個隨意的可見邊界,點擊時會在按鈕邊界內觸摸,而不是在獨特的隨意可見邊界內,這完全有意義。但是,我想限制其觸摸可見邊界,而不是整個按鈕。請隨附隨附的圖片,說明我想在哪裏(綠色檢查)觸摸以及不在哪裏(紅色十字)。提前謝謝你。限制UIButton的觸摸到指定區域
回答
子類的UIButton並實現pointInside:withEvent
方法。 https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIView_Class/#//apple_ref/occ/instm/UIView/pointInside:withEvent:
當系統想要知道事件給定的點是否在您的視圖內時,將會調用此函數。如果是則返回YES,否則返回NO。
所有你需要的是一種決定點是否在你的UIButton點擊區域的方式。當它返回YES時。
類似下面,它使用CGRects數組:
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event {
// Only pass through of the point is in a specific area
BOOL ret=NO;
for (NSValue *value in self.passThroughAreas){
CGRect rect=value.CGRectValue;
if (CGRectContainsPoint(rect, point)){
// Its in one of our pass through areas. Let the events pass.
ret=YES;
break;
}
}
return ret;
}
您使用的矩形越來越你讓他們更有針對性的區域越小即可。或者如果你最終會使用太多的東西,請使用更有趣的東西。
我也在尋找這種方法。 –
這樣的事情:http://codedmi.com/questions/1899974/uibutton-hit-area-is-too-big? –
那麼鏈接顯示如何使用'hitTest',你可以使用它來測試你的代碼。然而,最重要的是實現'pointInside',因爲這是用來決定一個視圖或其子項是否可以處理該事件的方法。我會從允許的矩形開始。當它的工作,你可以嘗試,更精細或使用更多的矩形,但較小的。 –
- 1. UIButton的可觸摸區域
- 2. 限制在iPhone中的UIButton的可觸摸區域?
- 3. 如何限制觸摸事件到特定區域或UIView?
- 4. 觸摸區域控制
- 5. 的UIButton沒有得到觸摸即使在全區域
- 6. 觸摸UIButton觸摸
- 7. 限制我的觸摸區域的一部分UIImageVIew
- 8. 限制導航欄按鈕項中的觸摸區域?
- 9. UISwitch:使觸摸區域大於默認觸摸區域
- 10. UIButton子類上的CALayer動畫之後的觸摸區域
- 11. gridster:您可以將小部件的可觸摸區域限制到特定區域嗎?
- 12. SceneKit在給定區域檢測觸摸
- 13. 獲取觸摸區域
- 14. iPhone - 觸摸區域檢測
- 15. Cocos2d按鈕觸摸區域
- 16. Android ChatHead僅限於觸摸本身,但我需要第二個手指同時觸摸第二個觸摸區域外的區域,
- 17. 取消觸摸它時的UIButton觸摸
- 18. 我如何製作一個自定義的可觸摸區域?
- 19. 檢測觸摸UIButton
- 20. UIButton觸摸事件
- 21. 獲取觸摸點與最大的區域被觸摸 - Android
- 22. IOS的UIButton觸摸取消
- 23. 我無法觸摸的UIButton
- 24. iOS定義了一個對象的可觸摸區域,將觸摸侷限在自我的子視圖上
- 25. 限制拇指橢圓區域
- 26. 展開ClickableSpan的觸摸區域
- 27. LibGdx - 增加演員的觸摸區域
- 28. 設置SKSpriteNode的可觸摸區域
- 29. 如何讓UIButton響應在PNG圖像的透明區域上的觸摸?
- 30. 自定義UIButton觸摸時不突出
有點相關的帖子在這裏:[Custom UIView touch area](http://stackoverflow.com/a/11277512/593709) –
哇!這是病態的。謝謝。將嘗試所有這些並回復你們。 –