gpt4 book ai didi

ios - 重新排序 UIView subview

转载 作者:技术小花猫 更新时间:2023-10-29 10:59:01 32 4
gpt4 key购买 nike

在我的应用程序中,我尝试将一个 subview 置于最前面,然后稍后将其放回其原始层位置。代码应该非常简单:

将 subview 置于最前面(在我的自定义 UIView 类中):

[self.superview bringSubviewToFront:self];

简单。我将原始 z 位置存储在名为 zPosition 的实例变量中。所以,-bringSubviewToFront: 之前的行是:

zPosition = [self.superview.subviews indexOfObject:self];

因此,我用来将我的 subview 置于最前面的所有代码是:

zPosition = [self.superview.subviews indexOfObject:self];
[self.superview bringSubviewToFront:self];

这可以正常工作。问题是当我尝试将 subview 放回原来的位置时。我只是这样做:

[self.superview exchangeSubviewAtIndex:zPosition withSubviewAtIndex:
[self.superview.subviews indexOfObject:self]];

使用这段代码,如果我有两个 subview ,就会发生这种情况:

假设我有 View A 和 View B。 View A 在 View B 上方。我点击 View B,它出现在前面。我再次点击 View B(它应该回到原来的位置),没有任何反应,所以它现在在 View A 上。如果我现在点击 View A,它会出现在前面,但是当我再次点击它时(所以它应该回到它原来的 z 位置:在 View B 下方),它所有的兄弟 View 都消失了!

有人知道是什么导致了这个问题吗?

最佳答案

不需要从父 View 中删除:

[self.superview insertSubview:self atIndex:zPosition];

关于ios - 重新排序 UIView subview ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11550156/

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