Iphone “如何设计我的子视图”;“层”是什么;?

Iphone “如何设计我的子视图”;“层”是什么;?,iphone,ios,xcode,ipad,Iphone,Ios,Xcode,Ipad,我正在开发一个应用程序,它可以让用户通过在身体上添加帽子、头发、眼睛等来装扮自己。用户基本上是从菜单中拖动该项,我将图形实例化到屏幕上,使用某种形式关闭“addSubview:或insertSubview:belowSubview:/belowSubview:” 问题是,有些项目应该总是出现在其他项目的下方。例如,“眼睛”(蓝色、棕色、绿色)图形应始终显示在“眼球”(各种眼睛形状和表情)上方。但是,我不强制用户遵循任何流程,他们可以随意拖放,因此addSubview:可能不合适,但insertS

我正在开发一个应用程序,它可以让用户通过在身体上添加帽子、头发、眼睛等来装扮自己。用户基本上是从菜单中拖动该项,我将图形实例化到屏幕上,使用某种形式关闭“
addSubview:或insertSubview:belowSubview:/belowSubview:

问题是,有些项目应该总是出现在其他项目的下方。例如,“眼睛”(蓝色、棕色、绿色)图形应始终显示在“眼球”(各种眼睛形状和表情)上方。但是,我不强制用户遵循任何流程,他们可以随意拖放,因此addSubview:可能不合适,但insertSubview:belowSubview:/UpperSubView:可能合适,这取决于您如何引用要在下方或上方添加的项

理想情况下,我会遵循如下堆栈:
配饰>发型>眉毛>眼球>眼睛…等等。有人对如何实现这一点有设计想法吗?谢谢

使您的视图层次结构如下所示:

self.view
├─ self.accessoriesView
│  ├─ braceletView
│  └─ toeRingView
├─ self.hairStylesView
│  ├─ blondeWigView
│  └─ hairClipView
├─ self.eyebrowsView
│  └─ archedEyebrowView
├─ self.eyeballsView
│  ├─ bloodshotEyeballView
│  └─ regularEyeballView
├─ self.eyesView
│  └─ greenEyesView
├─ etc.
当用户从菜单中拖出发型时,将新的发型视图添加为
self.hairStylesView
的子视图。当用户从菜单中拖出绿色眼睛时,将新的眼睛视图添加为
self.eyesView
的子视图


子视图
数组中后面的视图更接近用户-它们在
子视图
数组中前面的视图上绘制。因此,如果在代码中创建分组视图,只要按正确的顺序添加它们,就可以使用
addSubview:
。或者,如果您在nib中设置了视图,您可以在nib大纲中按正确的顺序放置视图。

谢谢,这非常有效。但是,通过实现这一点,您现在在ViewController的视图上有了一个UIView堆栈。如果上的手势识别器是在另一个类中创建的,则需要一种访问它们的方法。我在一个子类上使用hitTest,以便在未触及任何内容的情况下,将这些视图传递到下一个子视图: