UISwitch
理論上记餐,只用當(dāng)用戶點擊了UISwitch,才會觸發(fā),vauleChange 的action方法
但是實際開發(fā)中凿傅,發(fā)現(xiàn)iOS10機型上泊交,如果在action方法里調(diào)用了-setOn:animated:
或者setOn:
,就會多觸發(fā)一次action方法宏浩。
解決方案
- 避免在valueChange方法里調(diào)用
-setOn:animated:
或setOn:
- 如果無法避免知残,使用
dispatch_async
,在主隊列執(zhí)行這些方法(這個方法有個缺點,比較卡的手機會看到閃動的現(xiàn)象)
- (IBAction)valueChanged:(id)sender {
...
dispatch_async(dispatch_get_main_queue(), ^{
[sender setOn:YES];
});
...
}
3.iOS 10 以下機型不會出現(xiàn)這個問題比庄,iOS11 待驗證