Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iPhone应用程序的设计选项有许多(~50)个屏幕,每个屏幕都有相同的背景_Iphone_Ios - Fatal编程技术网

iPhone应用程序的设计选项有许多(~50)个屏幕,每个屏幕都有相同的背景

iPhone应用程序的设计选项有许多(~50)个屏幕,每个屏幕都有相同的背景,iphone,ios,Iphone,Ios,我正在编写一个iPhone应用程序(这将是我的第一个ios应用程序),它有大约50个屏幕,每个屏幕都有相同的背景——背景是一个覆盖整个屏幕的图像,顶部是另一个作为横幅的图像 每个屏幕都会有一些文本以及横幅图像下方出现的0、1、2或3个按钮 什么是最好的设计,把这些放在一起 我能想到的选项是(在每种情况下,我都计划有一个根控制器,负责适当地显示每个视图)。 1) 有50个单独的屏幕作为XIB(和相关的视图控制器),每个屏幕包含两个背景图像以及每个特定屏幕需要的按钮 2) 将4个超类作为XIB-(表

我正在编写一个iPhone应用程序(这将是我的第一个ios应用程序),它有大约50个屏幕,每个屏幕都有相同的背景——背景是一个覆盖整个屏幕的图像,顶部是另一个作为横幅的图像

每个屏幕都会有一些文本以及横幅图像下方出现的0、1、2或3个按钮

什么是最好的设计,把这些放在一起

我能想到的选项是(在每种情况下,我都计划有一个根控制器,负责适当地显示每个视图)。 1) 有50个单独的屏幕作为XIB(和相关的视图控制器),每个屏幕包含两个背景图像以及每个特定屏幕需要的按钮

2) 将4个超类作为XIB-(表示没有按钮、1个按钮、2个按钮、3个按钮),并使每个超类包含背景图像和尽可能多的按钮(视情况而定)。然后有50个子类,只需使用superclasses实例变量outlets适当地设置文本和按钮内容

3) 让根控制器有一个视图,其中包含永久存在的两个背景图像,50个视图中的每个视图都会在其顶部显示其文本和按钮

4) (如果这是可能的,我需要检查一个窗口是否可以有图像)。与3相同,除了根控制器没有视图外,主窗口显示背景图像,每个类在其顶部显示其文本和按钮。因此,每个视图控制器都必须使用代码加载和显示文本和按钮对象(在这种情况下,为它们提供XIB没有多大意义)

还有别的解决办法吗?其中一个是“最佳”解决方案吗

如果我使用3,是否不可能在xib中定义位置文本和按钮?(因为要这样做,他们需要一个父视图才能在interface builder中定位,但如果是这样,那么绘制视图时背景将不可见)

如果4是可能的,那么根控制器没有视图,因此它仍然需要从UIViewController派生,还是仅仅从NSObject派生

我认为目前我倾向于选项2),因为这样我可以将所有视图设计为可视的XIB,但只有4个视图。除非有更好更优雅的解决方案


TIA

您可以做的是一个包含所有按钮的XIB,然后您可以相应地设置然后隐藏。虽然它会把你绑起来。2)选项更灵活。这个也可以。您可以有一个rootViewController,只需保存图像,然后您可以像这样:

[rootViewController.spaceForMyChildView addSubview: myNewViewController.view];
“spaceForMyChildView”将是一个包含您的子视图的视图


我可能会在2)和3)之间进行融合。

UIWindow继承自UIView,因此可以在其中包含任何内容。所以(4)是可行的,尽管如果你想支持任何类型的视图旋转,你开始陷入棘手的境地

我认为倒排(2)是最简单的事情——有一个超类,在
viewDidLoad
上以编程方式添加背景和顶部横幅。让您的特定控制器从中继承,并以图形方式设计它们以包含您想要的任何内容,注意随后将添加图像和横幅


也就是说,如果你的视图真的像一个单一的文本区域和最多三个按钮一样简单,并且总是有固定的位置,那么像Jacky Boy建议的那样,从数据源重新填充字段的单个视图可能是最聪明的事情。

有了3个,你仍然可以使用XIBs,因为父视图可以是透明的。透明不是由该视图的子视图继承的,所以它们按钮也可以是透明的。我尝试了上面的实验,但什么也没显示出来。[self.childView addSubview:childView.view]执行任何操作,([self.view addSubview:childView.view]显示子视图,但背景消失)。我将childView添加为UIView*。我是否遗漏了某些内容或设置不正确?您需要将“spaceForMyChildView”创建为IBOulet。。。然后连接它。此外,您需要将新ViewController的背景设置为ClearColor,以便查看rootviewController的背景。谢谢。以编程方式加载背景/横幅是否重要?换言之,如果在锡伯银行中存在这种情况,它会不起作用吗?为什么?如果继承类都有一个带有子按钮等的xib视图,那么当显示该视图时,如何使其不隐藏背景图像?