UISegmentedControl委托/触摸事件

时间:2010-01-13 13:21:49

标签: iphone uibutton uilabel uisegmentedcontrol

我有一个UISegmentedControl有六个段,我希望它们在值更改时调用方法,但是当每个段获得UIControlEventTouchDragIn时也是如此因为我希望UILabel在人物时显示它的名字我试图在它上面选择一些东西并将它们的手指拖过控件,但即使我拖入这个东西,分段控件也不会发出这个调用。请帮忙。也许我需要在拖动时调用方法的控件上创建UIButton,但是当他们接收到tap时调用值更改的方法。

2 个答案:

答案 0 :(得分:35)

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

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

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

我有一个UITAbleView,每个单元格中都有一堆单元格和一个UISegmentedControll,它对我来说很合适。

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

答案 1 :(得分:-6)

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

由于无论如何你都无法分辨拖拽的哪个部分,你可能最好通过触摸手动完成所有操作并使用这些功能跟踪它。