我正在开发一个使用 Swift 4 创建角色的 iPhone 应用程序。
关于这个应用程序:在 Storyboard 上,我创建了一些 UIImageViews,它们在彼此之上呈现,代表角色的某些部分,例如 socks 、鞋子、裤子、衬衫。然后我在代码中组合所有这些层来创建完整的角色。我在用户界面中有按钮来选择一个类别。选择类别后,我会在 UICollectionView 中显示角色可以穿戴的所有可能元素。然后用户从这个集合中选择一个项目,因此相应的图像会相应地改变。
问题:因为我已经使用 Storyboard 在彼此之上创建了这些 UIImageView,所以它们在渲染时已经有一个顺序。但有时项目必须以不同的顺序呈现。例如,有时鞋子必须渲染在裤子上面,就像穿着紧身牛仔裤一样,而有时鞋子必须渲染在裤子下面,就像穿着靴型牛仔裤一样。有时用户不想将层一直带到顶部,而是在某些特定层之间。
我想让用户能够更改项目的渲染顺序或将它们向上或向下移动一层。
解决这个问题的好方法是什么?
预先感谢您的回答。
最佳答案
UIView 从第一个到最后一个呈现它的 subview 。因此,后面的 subview 覆盖了前面的 subview 。有多种方法可以更改 subview 的顺序。您可以使用 bringSubview(toFront:)
.
view.bringSubview(toFront: shoeView)
最后将渲染 subview shoeView
,使其位于 view
的所有其他 subview 之上。
如果你想移动 View ,你可以使用 insertSubview(_:at:)
.如果 View 始终是 subview ,则只需将其移动到新索引。
关于ios - 如何更改在 Storyboard 中创建的 UIImageView 的渲染顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48608933/