gpt4 book ai didi

ios - 获取应用程序的所有 View - 每时每刻?

转载 作者:行者123 更新时间:2023-11-29 01:04:08 25 4
gpt4 key购买 nike

我需要找到一种方法来创建一些在应用程序中始终存在的类。该类对项目中的其他类一无所知。它将能够“跟随”屏幕上的所有 UIViews,因此我每时每刻都可以检查(循环) View 并获取指向每个 View 的指针。

它必须实时运行,并始终检查 View 的位置(这是内存问题吗?)

为什么是指针?因为我需要了解它的一切,所以如果它是某种移动动画,或者它可能有一些元数据,如标签等,那么只知道在某个位置有一些 View 是不够的。

iOS 可以吗?

最佳答案

整个想法听起来像是一种反模式。然而,……

简单地遍历 View 树并为每个有趣的属性向每个 View 添加一个 KVO 处理程序。

- (void)traverseSubviewsOfParentView:(UIView*)view
for( UIView* subview in view.subviews )
{
[view addObserver:self forKeyPath:@"frame" options: NSKeyValueObservingOptionNew];

[self traverseSubviewsOfParentView:subview context:NULL];
}

然后实现观察方法:

-(void)observeValueForKeyPath:(NSString *)keyPath
ofObject:(id)object
change:(NSDictionary *)change
context:(void *)context
{
if( [@"frame" isEqualToString:keyPath] )
{
// Do what you want to do
}

}

此外,您必须观察每个 View 的 subviews 属性,以便在插入或删除 View 时得到通知。

关于ios - 获取应用程序的所有 View - 每时每刻?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36630128/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com