2010-01-13 217 views
15

我有一个UISegmentedControl有六个段,我希望他们在值改变时调用一个方法,而且当每个段得到一个UIControlEventTouchDragIn,因为我想要一个UILabel显示它的名字,当人试图选择某件东西,并在控件上拖动手指,但即使当我拖入事物时,分段控件也不会检测到此呼叫。请帮忙。也许我需要在拖动时调用方法的控件上创建UIButton,但是当他们接收到一个敲击时调用value changed方法。UISegmentedControl委托/触摸事件

回答

-6

您可以继承UISegmentedControl并覆盖- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { return; }方法来管理触摸的拖动和位置。

因为无论如何你都无法分辨拖动是在哪个段上进行的,所以手动操作触摸并使用这些功能进行跟踪可能会更好。

+1

我希望他们这样做更容易。我真的做到了! – Jaba 2010-01-13 17:20:02

33

也许我没有正确理解你的问题,但不能你只需要使用这样的:

[segmentedControl addTarget:self 
     action:@selector(action:) 
     forControlEvents:UIControlEventValueChanged]; 

,只是更换由UIControlEventTouchDragIn的UIControlEventValueChanged?然后在你的动作方法中做任何需要做的事情,比如改变UILabel的文本。

我在每个单元格中都有一个单元格和一个UISegmentedControll的UITAbleView,它对我来说工作得很好。

UISegmentedControl的文档似乎在线不可用,但您可以在XCode的Organizer中看到它,上面的代码是第一个示例。