我需要以各种方式设置 UISegmentedControl 的样式,因此创建了一个子类:
@interface MYSegmentedControl : UISegmentedControl
@end
我可以使用 [[MYSegmentedControl 外观]...] 设置我的控件样式,并且一切似乎都可以正常工作(设置选定的段、标题等),除了我无法禁用 MYSegmentedControl 中的段这一事实。
查看下面的代码片段,我的 *segway 和 *segwayTwo 的段 0 都应该被禁用。然而,这只是 *segwayTwo 的情况——我的 *segway 启用了所有段,它只是 UISegmentedControl 的子类。
MYSegmentedControl *segway = [[MYSegmentedControl alloc] initWithFrame:CGRectMake(10, 10, 100, 30)];
[segway insertSegmentWithTitle:@"A" atIndex:0 animated:NO];
[segway insertSegmentWithTitle:@"B" atIndex:1 animated:NO];
[segway insertSegmentWithTitle:@"C" atIndex:2 animated:NO];
segway.selectedSegmentIndex = 1;
[segway setEnabled:NO forSegmentAtIndex:0];
[segway setEnabled:YES forSegmentAtIndex:1];
[segway setEnabled:YES forSegmentAtIndex:2];
[myTableCell addSubview:segway];
UISegmentedControl *segwayTwo = [[UISegmentedControl alloc] initWithFrame:CGRectMake(125, 10, 100, 30)];
[segwayTwo insertSegmentWithTitle:@"X" atIndex:0 animated:NO];
[segwayTwo insertSegmentWithTitle:@"Y" atIndex:1 animated:NO];
[segwayTwo insertSegmentWithTitle:@"Z" atIndex:2 animated:NO];
segwayTwo.selectedSegmentIndex = 1;
[segwayTwo setEnabled:NO forSegmentAtIndex:0];
[segwayTwo setEnabled:YES forSegmentAtIndex:1];
[segwayTwo setEnabled:YES forSegmentAtIndex:2];
[myTableCell addSubview:segwayTwo];
有没有人知道为什么“setEnabled:NO ...”显然被 MYSegmentedControl 抑制了,你能想办法让它表现得像一个“普通”的 UISegmentedControl 吗?
提前致谢!