
[switch addTarget:self action:@selector(changeSwitchcolor:) forControlEvents:UIControlEventValueChanged];- (voID)changeSwitchcolor:(ID)sender{ ...} 问题是在动画完成之前调用了changeSwitchcolor:但是我想检测动画何时结束,所以我可以设置thumbTintcolor属性而不会破坏动画.
我尝试使用UIVIEw setAnimationDIDStopSelector:方法检测动画:
[UIVIEw setAnimationDIDStopSelector:@selector(animationDIDStop:finished:context:)];- (voID)animationDIDStop:(Nsstring *)animationID finished:(NSNumber *)finished context:(voID *)context{ ...} 但是在UISwitch完成动画时没有调用此方法(我甚至不确定动画是如何在内部制作的).
如何检测UISwitch的完成状态?
谢谢!
解决方法 您可以使用CATransaction.setCompletionBlock(_ :).addTarget(self,action: #selector(valueChanged(sender:)),for: [.valueChanged])@objc private func valueChanged(sender: UISwitch) { CATransaction.setCompletionBlock { [onChange] in onChange?(sender.isOn) }} 文档说,即使没有动画或动画被删除,也可以保证调用该块.它使用起来非常安全.
总结以上是内存溢出为你收集整理的ios – UISwitch – 检测动画结束全部内容,希望文章能够帮你解决ios – UISwitch – 检测动画结束所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)