- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下问题:我想要常量,在 parentView.subviews
数组中定义 subview 的顺序。此常量不一定是 subview 数组的索引,但它们可以。
像这样:
#define VIEW1_INDEX 10 // or 0, if it's an index
#define VIEW2_INDEX 20 // or 1, if it's an index
这意味着 parentView.subviews
数组是 {view1, view2}
。
首先我尝试使用 CALayer 的 zPosition 属性。
假设我有两个 parentView
的 subview :view1
和 view2
,它们具有相同的大小和框架。 parentView.subviews
数组是 {view1, view2}
(按此顺序)。如果我这样做
view2.layer.zPosition = VIEW2_INDEX;
view1.layer.zPosition = VIEW1_INDEX;
subview 的显示顺序改变了,但是点击处理顺序和 parentView.subviews
数组保持不变,所以我在顶部看到 view1
,点击它,但是此点击由 view2
处理,这不是我所期望的。
所以我需要同时更改显示顺序和事件处理顺序。
我最好的想法是使用代码,它总是与更改 subview 数组的代码一起设置新的 zPosition:
view2.layer.zPosition = 0;
NSUInteger* index = [parentView.subviews indexOfObject:view2];
[parentView exchangeSubviewAtIndex:0 withSubviewAtIndex:index];
但这似乎不是最好的解决方案。
其他想法是使用 [parentView insertSubview:atIndex:]
而不是 [parentView addSubview]
,但我需要确保插入 View 按照正确的顺序,这有点烦人,因为我在不同的地方创建了大约 15 个 View 。
所以最后的问题是:有没有办法解决开头描述的问题?
最佳答案
如何根据所需的堆叠顺序分配 subview 的标签 1..15(如果有 15 个)。将它们全部放在一个数组中,然后按标签排序。迭代数组,将它们添加到父 View 。
我不确定它们是如何创建的,但假设它们以任意顺序包含在某个数组中:
NSMutableArray *views = [NSMutableArray array];
UIView *subview9 = [[UIView alloc] init];
subview9.tag = 9;
[views addObject:subview9];
// and so on, in arbitrary order for subview1, subview2, subview3
// remember tag == 0 is no good, because it will be undistinguishable in viewWithTag
// from unassigned tags
排序数组:
[views sortUsingComparator:^(UIView *vA, UIView *vB) {
return vA.tag - vB.tag;
}];
将它们添加到父 View ,现在已排序:
for (UIView *view in views) {
[theViewThatContainsThemInTagOrder addSubview:view];
}
关于ios - zPosition 和 subview 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21053465/
假设我有节点 A、B 和 C。我如何将节点 A 设置为比节点 B 更高的 zPosition,将节点 B 设置为比 C 更高的 zPosition,但将节点 A 设置为比节点 C 更低的 zPosit
我不明白如何更改 View 的 zPosition,我尝试这样做,但没有任何反应: - (void)viewDidLoad { [super viewDidLoad]; UIView
我在控制节点的 zPosition 时遇到问题。如果在场景编辑器上创建,我没有问题,但稍后当我想用代码添加新节点时,zPosition 不受尊重。 //GameScene override func
我想在GameScene.sks中为场景制作背景。我在那里有Tile Map Node,但是当我在GameScene.swift中设置背景时,图片位于我的纹理上。我希望它出现在场景的后面。 这是Gam
我有两个 SKLabelNode,一个显示分数,另一个充当分数后面的阴影。每次我的球员通过一个目标时,我都会通过调用下面的 updateScoreLabels() 方法更新得分标签以增加 1 分。 但
三层被赋予相同的父级,但要添加的第一层上的 zPosition 值没有影响 - 它保留在后面。为什么是这样?我正在阅读的书说子层数组中的位置可以用 zPosition 值覆盖。 import UIKi
我一直认为 SKNode 的 zPosition 是相对于其父节点的,但现在我遇到了相反的效果。 我的场景中有两个父 SKNode,它们的 zPosition 分别为 1 (node1) 和 2 (n
addChild 和 zPosition 对场景有什么影响? 我的意思是:假设我这样做 sprite1.zPosition = 50; sprite2.zPosition = 10; sprite3.
我有一个相当复杂的 UIImageView 层次结构。最初,当一个 UIImageView 移动到另一个 UIImageView 前面时,我小心地交换了同级顺序。然后我发现了 myUIImageVie
我有以下问题:我想要常量,在 parentView.subviews 数组中定义 subview 的顺序。此常量不一定是 subview 数组的索引,但它们可以。 像这样: #define VIEW1
我想将图像放置在导航栏上,但部分放置在导航栏上,部分放置在内容 View 上。所以我将 UINavigationBar.layer.zPostion 设置为 -1,它工作得非常好,尤其是在 iPhon
我有一个 UISearchBar正在努力动态显示列表中的匹配结果,但在试图停止 searchResultsTableView 时遇到了噩梦从模糊结果UIView ,当结果被点击时,它从右边开始动画。
我正在尝试制作一个抽屉,当它被点击时,它会从该行下方滑出。除了无法设置 zposition 之外,我已经完成了所有工作。我尝试了几种不同的方法,但它对我不起作用。我可以将 View 与行的底部对齐,但
我想更改我的瓦片 map 中某些瓦片的 zPosition。我使用以下函数来实现这一点: static func setZPosition(to tileMap: SKTileMapNode, an
我正试图暂停我游戏中的许多 Sprite 。有没有一种方法可以暂停具有给定 zPosition 的 Sprite 或低于给定 zPosition 的所有 Sprite ?这些 Sprite 也可能在更
我在 SpriteKit 场景中遇到了节点 zPosition 的问题。 我正在构建一个管理器节点,它支持对节点 zPosition 进行“类似层”的管理,本质上使您能够摆脱 zPosition 属性
我遇到了一个问题,当值变大时,Core Animation 似乎忽略了我的 zPosition 值。 例子 这很容易复制。 CGFloat largeZPosition = 1000000000; C
我是 Swift 编程新手。我正在尝试创建一个游戏,其中有一堆在屏幕上随机移动的 Sprite 。假设我有一堆简单的 2D 图像 Sprite 。当 Sprite 向上移动时(如 y 位置增加),我希
我有一些 UIViews 位于不同的 zPositions。这个想法是在呈现观点的那一刻有一种深度的感觉。所有 View 的图层都是 MainView.layer 的子图层。我想做的是在我的 View
在 Swift 中,我将尝试在顶部设置引脚位置 (zPosition),我在 map 上添加 10 个引脚,当前引脚(任何一个引脚)显示在顶部并且这些当前引脚图像发生变化,但它没有显示在顶部,请帮助我
我是一名优秀的程序员,十分优秀!