我有一個UIButton有2個功能:水龍頭和長按。有點像Springboard應用程序(主屏幕)。我已經使用UILongPressGestureRecognizer作爲UIButton實現它。您是否可以禁用UIButton而不禁用其附加的UIGestureRecognizers?
在某些情況下,我需要通過在我的按鈕上設置enabled = NO
來禁用點按操作。但不幸的是,這也禁用了我的手勢識別器。
如何禁用UIButton的標準行爲,同時保持手勢識別器附加到它活動?
我有一個UIButton有2個功能:水龍頭和長按。有點像Springboard應用程序(主屏幕)。我已經使用UILongPressGestureRecognizer作爲UIButton實現它。您是否可以禁用UIButton而不禁用其附加的UIGestureRecognizers?
在某些情況下,我需要通過在我的按鈕上設置enabled = NO
來禁用點按操作。但不幸的是,這也禁用了我的手勢識別器。
如何禁用UIButton的標準行爲,同時保持手勢識別器附加到它活動?
的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
,或根據你的情況,你可以被稱爲目標/選擇方法內無操作。
您可以刪除按鈕的水龍頭目標和選擇器,然後在需要時再次添加它。通過設置enabled = NO;
您將UIControl的接收器設置爲NO。
更多文檔 UIButton - Enabled