具有两个UIButton的分段控件,并将每个按钮的动作设置为action:@selector(segmentedControl:)
。
- (IBAction)segmentedControl:(id)sender {
BOOL activateSecond = _firstTab.selected;
_firstTab.selected = !activateSecond;
_secondTab.selected = activateSecond;
}
问题仍然是如何解决,如果我点击活动按钮(现在活动状态跳转到另一个)。
在我的脑海中,我认为你可以使用标签属性。
为每个按钮的标签设置一个数字。
然后当你在你的segmentedControl方法中收到一个send时,将它强制转换为UIButton并检查它的标签值
- (IBAction)segmentedControl:(id)sender {
int buttonTag = ((UIButton*)sender).tag;
if(_firstTab.selected && buttonTag != 1){
_firstTab.selected = NO;
_secondTab.selected = YES;
}else if(_secondTab.selected && buttonTag != 2){
_firstTab.selected = YES;
_secondTab.selected = NO;
}
}
跟踪之前被选中的按钮,然后您可以通过:
捕获新按钮。- (IBAction)segmentedControl:(id)sender {
UISegmentedControl * myControl = (UISegmentedControl *) sender;
if(myControl.selectedSegmentIndex != previouslySelectedIndex)
{
// here the user has selected a new button, which becomes the active one
previouslySelectedIndex = myControl.selectedSegmentIndex;
} else {
// the user tapped on the active, previously selected button
}
}
当然,你需要初始化preprelyselecteindex。
如果这个想法对你有帮助,请告诉我。