好的,所以我有一个分段控件,我需要动态删除和添加分段。这段代码将删除第一段,但没有设置要选择的正确段。奇怪的是,当我打印出来时,所有的数字都是正确的,它只是屏幕上突出显示的部分,它总是输出 -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];
}
这是日志设置为 1 和 3 个段。有了这个日志段0实际上在控件中被选中,我不能按段1,因为控件认为它被选中了?我可以按第 0 段,即使那是显示为选中的段。
这是一个屏幕截图,试图澄清我的问题。
图片 单元格中的文本是正确的,因为您可以从日志中看到实际选择了单元格 1。但是突出显示的单元格是0!?这让我疯狂。仅在删除我遇到问题时才添加分段时,这一切都有效。
任何人都可以看到哪里出错了吗?
非常感谢
朱尔斯
我注意到,即使我没有设置新的选定段,我也会得到相同的结果,即选择了错误的段.....?? 如果这对任何人有帮助,这也都是用 cellForRowAtIndexPath 编码的?