我正在为iOS开发一个应用程序,其中有一个包含子视图的视图,我想在任何子视图设置为隐藏时调用一个函数。
有没有人能指点我正确的方向?
我正在为iOS开发一个应用程序,其中有一个包含子视图的视图,我想在任何子视图设置为隐藏时调用一个函数。
有没有人能指点我正确的方向?
好的,假设您在超级视图中实现了一个名为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;
然后(取消)隐藏后,它可以随心所欲地进行操作。
更好的做法可能是使用KVO,这已被标记为重复内容。(参考链接)