簡體   English   中英

iOS-忽略點擊手勢

[英]iOS - ignoring a tap gesture

我在自定義表格單元格中有一個UITapGestureRecognizer,它打算什么也不做(刪除點按單元格以選擇它的能力)。 這很好用,但是單元格中有一些按鈕(子視圖)無法點擊,因為輕擊手勢可以處理整個單元格區域。

因此,就像檢測觸摸手勢何時位於這些按鈕之一上並返回false以取消該特定手勢一樣簡單,對吧? 好吧,不適合我...

我已經刪除了邏輯,只是在手勢識別器中返回了NO,但是我仍然無法點擊按鈕。

- (BOOL)ignoreTap:(UIGestureRecognizer*)gestureRecognizer shouldReceiveTouch:(UITouch*)touch
{
    return NO;
}

這里有什么我想念的嗎?

解決方案更簡單:您不應該使用手勢識別器來執行此操作。 如果您不希望選擇單元格,則可以做兩件事:

以這種方式進行操作應保留您的按鈕功能。


編輯:如果您不想這樣做,那么您可以做您最初嘗試的操作-除非我認為您的方法名稱錯誤,應該是這樣:

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

為此,我做了一個自定義按鈕,如下所示:

- (void)awakeFromNib
{
    [super awakeFromNib];
    [self addTarget:self action:@selector(touchDown) forControlEvents:UIControlEventTouchDown];
    [self addTarget:self action:@selector(touchUpInside) forControlEvents:UIControlEventTouchUpInside];
    [self addTarget:self action:@selector(touchUpOutside) forControlEvents:UIControlEventTouchUpOutside];
}

- (void)touchDown
{
    self.imageView.image = [UIImage imageNamed:@"ButtonPressed.png"];
}

- (void)touchUpInside
{
    self.imageView.image = [UIImage imageNamed:@"Button.png"];
}

- (void)touchUpOutside
{
    self.imageView.image = [UIImage imageNamed:@"Button.png"];
}

- (void)setHighlighted:(BOOL)highlighted
{
    return;
}

暫無
暫無

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

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