2010-10-29 57 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 
}