簡體   English   中英

如何在禁用用戶交互的情況下為子視圖實現longPressGestureRecognizer?

[英]How implement longPressGestureRecognizer for subview with disabled user interaction?

我需要這樣的用戶界面:

在此處輸入圖片說明

具有2個按鈕(黃色和紅色)和背景視圖(灰色),將具有下一個行為:-當我按下按鈕時將其突出顯示; -當我釋放按鈕時執行; -當我從任何其他視圖中按下並移入按鈕時,按鈕變為突出顯示(例如:按下灰色矩形並釋放紅色,或者按下黃色並釋放紅色); -支持按鈕手勢(例如長按和滑動)

因此,為解決我的問題,我只能找到另一種方法:重新定義我的GrayView觸摸方法: touchesCancelledtouchesMovedtouchesBegan ,然后檢查當前觸摸位置是否屬於某個矩形-我執行適當的操作。 但是對於此解決方案,我必須使我的按鈕具有userInteractionEnabled = false ,這意味着它們不再支持手勢或其他事件。 因此,如果我要使用什么來支持它,則我必須自己實施,而不是要做什么。

那么我該如何解決呢?

如果我正確理解,也可以將手勢識別器添加到灰色視圖。 當手勢識別器觸發時,找到觸摸區域中的彩色視圖:

- (void)tapAction:(UITapGestureRecognizer*)recognizer{
    if(recognizer.state == UIGestureRecognizerStateEnded){
        CGPoint position = [recognizer locationInView:grayView];
        if(CGRectContainsPoint(redView.frame, position) {
            ...
        }
    }
}

暫無
暫無

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

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