【问题标题】:set highlight of UISegmentedControl设置 UISegmentedControl 的高亮
【发布时间】:2016-12-17 19:49:01
【问题描述】:
我想设置突出显示的段而不调用分配的函数。
我打电话
segmentedControlLeft.selectedSegmentIndex = 1;
这适用于 segmentedControl,但它也会生成 UIControlEventValueChanged,它调用我的附加函数,我想避免它再次调用。
这可能吗?
谢谢!
【问题讨论】:
标签:
iphone
objective-c
ipad
ios
uisegmentedcontrol
【解决方案1】:
见我的question
这是一个已知问题。 ID#8372405
您必须使用在使用 setSelectedSegmentIndex: 之前设置的 BOOL,并在设置所选索引后取消设置。检查您的操作中的布尔值。
这就是我所做的。
【解决方案2】:
删除目标,更改所选细分并再次添加目标。或者您是否使用某个变量来标记您确实通过代码对其进行了修改,如果设置了此标志,请忽略函数中的此调用并重置您的标志。
【解决方案3】:
我现在就这样做了,它可以工作
[segmentedControlLeft removeTarget:self action:@selector(segmentActionZoom:) forControlEvents:UIControlEventValueChanged];
segmentedControlLeft.selectedSegmentIndex = value;
[segmentedControlLeft addTarget:self action:@selector(segmentActionZoom:) forControlEvents:UIControlEventValueChanged];