oc中如何在view被移除时不触发didMoveToWindow
在OC中,当一个视图被从父视图中移除时,didMoveToWindow方法会被调用。但有时候我们希望在视图被移除时不触发didMoveToWindow方法,可以通过重写willMoveToSuperview:方法来实现。
在自定义的视图类中,重写willMoveToSuperview:方法,并在方法中判断是否视图即将被移除,如果是,则不执行super的方法调用。
示例代码如下:
- (void)willMoveToSuperview:(UIView *)newSuperview {
if (newSuperview == nil) {
// 视图即将被移除,不执行super的方法调用
return;
}
// 执行super的方法调用
[super willMoveToSuperview:newSuperview];
}
通过上述代码,当视图被移除时,不会触发didMoveToWindow方法。
原文地址: https://www.cveoy.top/t/topic/hPRL 著作权归作者所有。请勿转载和采集!