我有一个 scrollView
,自定义 View 正在添加和删除以响应用户交互。我想确保容器 View 总是足够大以显示所有 subview ,并且想检测添加或删除 View 的时间。我尝试使用 KVO:
[self.scrollView addObserver:self forKeyPath:@"subviews" options:NSKeyValueObservingOptionNew context:nil];
但是虽然没有错误,但是当 subview 的数量发生变化时,observeValueForKeyPath:...
方法永远不会被调用。我应该改用什么?
附言我知道我可以将所需的 contentSize
属性的计算直接放入向 scrollView 添加/删除 subview 的方法中,但是出于架构原因,这个选项不如我,我更喜欢 KVO 之类的东西反而。有这样的选项吗?
最佳答案
创建 UIView 时,“subviews”总是存在,尝试观察“subviews.count”。或者更好的方法是使用 UIView 中的以下 API:
- (void)didAddSubview:(UIView *)subview
请引用:《观察 View 相关变化》here .
关于iOS 检测 subview 被添加到 UIViewContoller 的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27282159/