ios - 如何更改在 Storyboard 中创建的 UIImageView 的渲染顺序

标签 ios user-interface uiview uiimageview swift4

我正在开发一个使用 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/

相关文章:

ios - 使用渐变缩放 UIView

ios - 使用 setNeedsDisplay

iphone - 如何在 if 中比较 NSNumber

ios - 如何将CIFilter应用于CALayer

iphone - UISearchBar 取消按钮崩溃

java - 为什么我的框架没有调整大小?

ios - UIView 不根据 subview 调整宽度?

ios - 将 json 对象添加到数组

ios - 将 UIPageViewController 与快速和多 View Controller 一起使用

c++ - Qt 滑动动画到其他 .ui 文件