我想要一个 UISegmentedControl ,其中包含许多可选选项,但还包括一个信息按钮,它是不可选择的。UISegmentedControl 类参考讨论了使用瞬时披露按钮,暗示它是可能的,但是那里或头文件中没有其他任何东西解释如何做这样的事情。
那么我该怎么做呢?
我想要一个 UISegmentedControl ,其中包含许多可选选项,但还包括一个信息按钮,它是不可选择的。UISegmentedControl 类参考讨论了使用瞬时披露按钮,暗示它是可能的,但是那里或头文件中没有其他任何东西解释如何做这样的事情。
那么我该怎么做呢?
经过大量实验,我发现在所选索引上保留一个影子变量可以让我做到这一点。在以下代码中,信息按钮为 1,其他按钮可选。在viewDidLoad
设置初始值(或向控件询问其选定的索引)。然后将以下代码用于操作方法:
- (IBAction)segmentAction:(UISegmentedControl *)sender
{
NSUInteger idx = [sender selectedSegmentIndex];
switch(idx) {
case 1: // momentary button
sender.selectedSegmentIndex = selectedIndex;
break;
default:
selectedIndex = idx;
// other stuff
break;
}
...
基本上您需要做的就是重置选定的索引。仅在 iOS7 上测试。