2010-10-29 41 views
0

我想在Xcode中禁用UIButton拖拽,有沒有辦法做到這一點?objective-c在UIButton中禁用拖拽

任何解決方案將幫助

感謝

+0

你意味着像拖放一樣拖動? – Daniel 2010-10-29 12:54:14

+0

是的,但我想禁用拖動,一旦我從UIbutton觸摸並滑動它執行拖動操作。所以我只是想知道是否可以禁用拖動動作 – user462407 2010-11-01 04:36:28

回答

0

如果你正在尋找不允許用戶從觸摸拖出來,看UIControl類。特別注意的:如果你使用的InterfaceBuilder

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

,你應該看看可供活動的選項(在Inspector窗口,第二個選項卡)。

+0

是的我一直在研究UIControl類和IB中的按鈕連接,但我想問的是如何禁用該按鈕的拖出功能。現在的情況是,我在屏幕上有2個UI按鈕,如果用戶先點擊一個按鈕並滑過第二個按鈕,它將觸發第一個按鈕的拖出動作,但我想要做的是觸發「觸摸「第二個按鈕的動作。 – user462407 2010-11-01 02:14:17

+0

我不確定我完全理解你的問題,但我會盡力回答。您應該能夠設置一個目標:操作:對於按鈕1上的拖出事件,其中目標是「按鈕2」,操作是「向下」。 – joshpaul 2010-11-01 21:08:58

1

您不能禁用觸摸拖動事件,但可以使用替代方法處理它們。 您需要處理觸摸事件處理程序。當我們向左或向右滑動TouchCancel事件時,您向上或向下滑動TouchDragExit被觸發。確保實施兩者。

@property(nonatomic)BOOL buttonFullyTouched; 。 。 。 //觸及事件

- (IBAction)filterTouchedDown:(id)sender 
{  
    _nameButton.selected = NO; 
    _codeButton.selected = NO; 
    _dateButton.selected = NO; 

    _filterFullyTouched = NO; 
} 

//觸摸拖動退出事件

- (IBAction)buttonDragExit:(id)sender 
{ 
    if (!_buttonFullyTouched) 
    { 
     UIButton *randomButton = (UIButton *)[_groupView viewWithTag:_previousButtonSelectedTag + 2000]; 
     randomButton.selected = YES; 
    } 
} 

//觸摸取消事件

- (IBAction)buttonTouchCancel:(id)sender 
{ 
    if (!_buttonFullyTouched) 
    { 
     UIButton *randomButton = (UIButton *)[_groupView viewWithTag:_previousButtonSelectedTag + 2000]; 
     randomButton.selected = YES; 
    } 
} 

// TouchUpInside事件

- (IBAction)groupButtonTapped:(id)sender 
{ 
    _nameButton.selected = NO; 
    _codeButton.selected = NO; 
    _dateButton.selected = NO; 

    _buttonFullyTouched = YES; 

    // logic for further code 
}