我正在为iOS开发一个应用程序,我有一个包含子视图的视图,我希望在其任何子视图设置为隐藏时调用一个函数。
有人能指出我正确的方向吗?
答案 0 :(得分:3)
好的,假设你在名为subview:(UIView *)view wasHidden:(BOOL)hidden
的超级视图中实现了一个方法,那么你需要在设置viewToHide.hidden
之后调用它:
viewToHide.hidden = YES;
if ([[viewToHide superview] respondsToSelector:@selector(subview:wasHidden:)]) {
[[viewToHide superview] subview:viewToHide wasHidden:YES];
}
有点粗糙,但我相信它会起作用。一个更好的解决方案可能是让superview通过(自定义)方法进行隐藏,如:
- (void)hideSubview:(UIView *)subview;
- (void)unhideSubview:(UIView *)subview;
然后它可以在(联合国)隐藏之后做它喜欢的事情。
更好的是might be to use KVO,因为已被标记为重复。