Liz*_*zza 12 objective-c key-value-observing subview uiview ios
我已经四处寻找答案,我试图实现它,但没有任何工作.基本上,我需要能够观察VC视图的子视图数组中的更改.如果从该数组中删除现有视图,我希望收到有关它的通知并运行一些代码.
可能吗?
编辑 - 更多信息
我正在尝试修复一个奇怪的边缘案例错误,快速点击UISearchDisplayController(非常自定义)的UISearchBar会导致sdController(或者更确切地说是navBar效果中的托管searchBar)从视图中消失,但sdController仍然是STILL活性.这意味着navBar停留在-y原点,下面的tableView不可滚动.
我最初的想法是进入sdController处于活动状态,但UISearchDisplayControllerContainerView不在视图层次结构中.我尝试在VC的viewDidLayoutSubviews中测试它,但是当你点击搜索栏并启动sdController动画时,sdController处于活动状态,而UISearchDisplayControllerContainerView不在视图层次结构中:(.
小智 16
您可以观察sublayers符合KVO的CALayer 属性,而不是UIView subviews.
与 Apple 框架中的大多数属性一样,subviews 它不符合 KVO。
如果您控制子视图或超级视图,您可以通过子类化和覆盖来观察视图层次结构的更改:
在超级视图中你必须覆盖...
- (void)willRemoveSubview:(UIView *)subview
Run Code Online (Sandbox Code Playgroud)
...或者,如果您控制子视图,您将覆盖...
- (void)willMoveToSuperview
Run Code Online (Sandbox Code Playgroud)
这两个方法都会在视图被删除之前调用。
| 归档时间: |
|
| 查看次数: |
2856 次 |
| 最近记录: |