Jag*_*gie 14 iphone key-value-observing uiview ios
似乎UIView没有像" didRemoveFromSuperview"或" willRemoveFromSuperview" 那样的方法.那么,当UIView从superView中删除时,如何监听事件?我应该使用KVO吗?提前致谢!
小智 21
这个话题已经很老了,但我找到了一种方法.由于谷歌搜索不够有用,这里是(取自UIView的文档)
观察与视图相关的更改
- didAddSubview:
- willRemoveSubview:
- willMoveToSuperview:
- didMoveToSuperview
- willMoveToWindow:
- didMoveToWindow
Mar*_*per 21
这有效(在iOS8上测试):
-(void) didMoveToWindow {
[super didMoveToWindow]; // (does nothing by default)
if (self.window == nil) {
// YOUR CODE FOR WHEN UIVIEW IS REMOVED
}
}
Run Code Online (Sandbox Code Playgroud)
此方法的默认实现不执行任何操作.子窗口可以覆盖它,以便在窗口更改时执行其他操作.
窗口属性可能是nil ... 当接收器刚刚从其超级视图中移除时或者刚刚将接收器添加到未附加到窗口的超级视图时,会发生这种情况.
小智 8
- (void) willMoveToSuperview: (UIView *) newSuperview{
if(newSuperview == nil){
// UIView was removed from superview
} else {
// UIView was added to superview
}
}
Run Code Online (Sandbox Code Playgroud)
您可以将UIView子类化并从其- (void)removeFromSuperview方法发布通知.
| 归档时间: |
|
| 查看次数: |
11724 次 |
| 最近记录: |