我有一個帶有幾個子視圖的父母UIView
。檢測一個UIView是否在父親的另一個UIView後面
子視圖是兄弟姐妹 - 子視圖不是彼此的子視圖。 (每一個在其上海華同heirarchical級)
例如:
UIView *containerView = [[UIView alloc] initWithFrame:frame];
CustomUIView *childView = [[UIView alloc] initWithFrame:anotherFrame];
CustomUIView *yetAnotherChildView = [[UIView alloc] initWithFrame:anotherFrame];
[containerView addSubview:childView];
[containerView addSubview:yetAnotherChildView];
[containerView bringSubviewToFront:childView];
我想yetAnotherChildView
能夠檢測到它移回視圖中的層次結構。如何才能做到這一點?
編輯:
我明白containerView
可以知道子視圖是上面什麼什麼 - 但我不wan't(不能)的containerView
通知其子視圖,它們爲了改變 - 想象一下,加股票視圖上的子視圖 - 股票視圖不知道其子視圖,並且他們希望收到這樣的通知。
子視圖CustomUIView
需要觀察一些變化在其superview
例如(這可能是一個非常糟糕的解決方案)
CustomUIView
-(id)initWithFrame
{
[self.superView addObserver:self forKeyPath:@"subViews" options:options context:context];
}
- (void)observeValueForKeyPath:(NSString *)keyPath
ofObject:(id)object
change:(NSDictionary *)change
context:(void *)context
{
// if keyPath is "subViews" array check if "this" view is ontop and adjust self accordingly
}
我想子視圖,以檢測它被送回。我不想明確通知它已被移回。想象一個視圖在可見時發生一些動畫的情況。當它不可見時,我想停止動畫。子視圖需要一些知道它的「z」索引不可見的機制(在另一個視圖下) –
好的。所以只有一個視圖將在頂部(在超視圖)? –
在這個特殊的情況下是的 - 但它可以被推廣 –