【问题标题】:UISegmentedControl delegate/Touch EventsUISegmentedControl 委托/触摸事件
【发布时间】:2023-03-11 22:40:01
【问题描述】:
我有一个 UISegmentedControl 有六个段,我希望他们在值更改时调用一个方法,而且当每个段获得 UIControlEventTouchDragIn 时,因为我希望 UILabel 在该人尝试时显示它的名称选择它上面的东西并将他们的手指拖过控件,但是即使我拖入该东西,分段控件也不会发送此调用。请帮忙。也许我需要在控件上创建 UIButtons,以便在拖入时调用方法,但在收到点击时调用值更改方法。
【问题讨论】:
标签:
iphone
uibutton
uilabel
uisegmentedcontrol
【解决方案1】:
也许我没有正确理解你的问题,但你不能用这个吗:
[segmentedControl addTarget:self
action:@selector(action:)
forControlEvents:UIControlEventValueChanged];
只需将 UIControlEventValueChanged 替换为 UIControlEventTouchDragIn?然后在您的操作方法中执行任何需要执行的操作,例如更改 UILabel 的文本。
我有一个带有一堆单元格的 UITableView,每个单元格中有一个 UISegmentedControll,它对我来说很好用。
UISegmentedControl 的文档似乎无法在线获得,但您可以在 XCode 的 Organizer 中看到它,上面的代码是第一个示例。
【解决方案2】:
你可以只继承 UISegmentedControl 并覆盖
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
return;
}
管理触摸的拖动和位置的方法。
由于您无论如何都无法判断拖动在哪个段上,因此您最好通过触摸手动完成所有操作并使用这些功能进行跟踪。