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,以便在未触及任何内容的情况下,将这些视图传递到下一个子视图: