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のように動作させる方法を理解できますか?
前もって感謝します!