2012-02-08 46 views
2

我有一個UIButton有2個功能:水龍頭和長按。有點像Springboard應用程序(主屏幕)。我已經使用UILongPressGestureRecognizer作爲UIButton實現它。您是否可以禁用UIButton而不禁用其附加的UIGestureRecognizers?

在某些情況下,我需要通過在我的按鈕上設置enabled = NO來禁用點按操作。但不幸的是,這也禁用了我的手勢識別器。

如何禁用UIButton的標準行爲,同時保持手勢識別器附加到它活動?

回答

1

的UIButton是一個子類UIControl的。 看看UIControl中的各種方法。
您可以指定特定方法來調用ControlEvents(例如ControlEventTouchUpInside a.k.a tap)和UIEvents。

- (void)sendAction:(SEL)action to:(id)target forEvent:(UIEvent *)event 

- (void)sendActionsForControlEvents:(UIControlEvents)controlEvents 

您可以刪除控制事件的操作與:

- (void)removeTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents 

,或根據你的情況,你可以被稱爲目標/選擇方法內無操作。

1

您可以刪除按鈕的水龍頭目標和選擇器,然後在需要時再次添加它。通過設置enabled = NO;您將UIControl的接收器設置爲NO。

更多文檔 UIButton - Enabled

相關問題