如何在没有子类化的情况下跟踪UIView从superview中删除的时间?

时间:2017-04-25 12:43:24

标签: objective-c uiview

我想在我的应用程序中创建一个类,用于跟踪从屏幕上删除已注册的UIView的时间。例如,它就像调用[MyViewTracker trackView:view]并等待代理调用或删除时的通知。

由于我不拥有这些视图,因此我无法将它们子类化以通知我,也无法使用KVO跟踪view.superviewview.window的更改。我可以不时检查正在跟踪的视图是否仍在显示,但它看起来不是一个好的解决方案。

还有其他解决办法吗?也许还在调整UIView的工作方式?

任何帮助都将不胜感激。

谢谢

1 个答案:

答案 0 :(得分:0)

它看起来真的很乱,你应该避免,但你可以调动removeFromSuperview,调用你的跟踪方法并回调原始实现。那就是你真的需要。 有一篇关于调酒的好文章:https://www.mikeash.com/pyblog/friday-qa-2010-01-29-method-replacement-for-fun-and-profit.html