设置UISegmentedControl的高亮显示

时间:2011-03-01 18:31:39

标签: iphone objective-c ipad ios uisegmentedcontrol

我想设置突出显示的片段而不调用指定的功能。

我打电话

segmentedControlLeft.selectedSegmentIndex = 1;

适用于segmentedControl,但它也生成UIControlEventValueChanged,它调用我的附加函数,我想避免再次调用。

可能吗?

谢谢你!

3 个答案:

答案 0 :(得分:2)

查看我的question

这是一个已知问题。 ID#8372405

您必须使用在使用setSelectedSegmentIndex之前设置的BOOL:并在设置所选索引后取消设置。检查你的行动中的布尔值。

这就是我所做的。

答案 1 :(得分:1)

删除目标,更改选定的细分并再次添加目标。或者你使用一些变量标记你是否通过代码修改它,如果设置了这个标志,忽略你的函数中的这个调用并重置你的标志。

答案 2 :(得分:1)

我现在就这样做了,它可以正常工作

[segmentedControlLeft removeTarget:self action:@selector(segmentActionZoom:) forControlEvents:UIControlEventValueChanged];
segmentedControlLeft.selectedSegmentIndex = value;
[segmentedControlLeft addTarget:self action:@selector(segmentActionZoom:) forControlEvents:UIControlEventValueChanged];