我有一个scrollView
,为了响应用户互动,我们会添加和删除自定义视图。我想确保容器视图总是足够大以显示所有子视图,并且想要检测添加或删除视图的时间。我尝试过使用KVO:
[self.scrollView addObserver:self forKeyPath:@"subviews" options:NSKeyValueObservingOptionNew context:nil];
但是虽然没有错误,但是当子视图的数量发生变化时,observeValueForKeyPath:...
方法永远不会被调用。我该怎么用?
P.S。我知道我可以将所需的contentSize
属性的计算直接放入向scrollView添加/删除子视图的方法中,但出于体系结构的原因,这个选项不如我而且我更喜欢像KVO这样的东西。有这样的选择吗?
答案 0 :(得分:2)
"子视图"在创建UIView时总是存在,尝试观察" subviews.count"。或者更好的方法,使用UIView中的以下API:
- (void)didAddSubview:(UIView *)subview
请参阅:"观察与视图相关的更改" here
答案 1 :(得分:0)
您不能KVO子视图,但可以KVO子层
useEffect(() => {
getUserId();
}, invitation);