さて、セグメントを動的に削除および追加する必要があるsegmentedControlがあります。このコードは最初のセグメントを削除しますが、選択する正しいセグメントを設定しません。奇妙なことに、すべての数字を印刷すると、画面上で強調表示されたセグメントだけが常に-1で表示されます。
if ([outControl numberOfSegments]==4) {
int previous = [outControl selectedSegmentIndex];
if (previous>0) {
previous--;
}
[outControl removeSegmentAtIndex:0 animated:YES];
NSLog(@"setting to %d with %d segments", previous ,[outControl numberOfSegments]);
[outControl setSelectedSegmentIndex:previous];
}
これは、3つのセグメントを持つ1へのログ設定です。このログでは、セグメント0が実際にコントロールで選択されており、コントロールが選択されていると見なすため、セグメント1を押すことができませんか?セグメント0が選択された状態で表示されているにもかかわらず、セグメント0を押すことができます。
これが私の問題を明確にするためのスクリーングラブです。
image ログからわかるように、セル1が実際に選択されているため、セル内のテキストは正しいです。しかし、強調表示されたセルは0です!?それは私を夢中にさせます。セグメントを追加するときにすべて機能しますが、削除するときにのみ問題が発生します。
誰かがそれがどこで間違っているのか見ることができますか?
どうもありがとう
ジュール
新しく選択したセグメントを設定しなくても同じ結果が得られることに気づきました。つまり、間違ったセグメントが選択されています..... ?? また、それが誰かを助けるなら、これはすべてcellForRowAtIndexPathでコード化されていますか?