对于我目前正在处理的iOS应用,我需要根据应用运行的设备类型管理屏幕上显示的控件。
我将尝试用理论上的例子来解释(下面使用的实际数字并不重要,我感兴趣的是获得理想结果的最佳方法。)
示例:
对于屏幕截图中的应用程序,与UIImageView重叠的按钮不应全部显示或显示在屏幕上的其他位置。
到目前为止,我已经使用了autolayout,但是,根据我的想法,没有办法说xcode之类的东西:嘿,对于班级大小的“Compact Width / Compact Height”,我希望你隐藏这些按钮...但显示“常规宽度/紧凑高度”。
我也做了一些谷歌搜索,看到一些人谈论使用基于设备的不同故事板;我也在想,我可以根据设备类型动态添加/删除按钮,但我认为不必手动添加所有约束(编程方式)。
所以要恢复,我会很感激建议采用“最好”的方式来做到这一点,最好的意思是'不那么难'+'不那么长'的组合。此外,一些代码示例(或链接)将受到高度赞赏。
提前谢谢大家!
答案 0 :(得分:0)
我认为这一切都取决于你整体上做得多么复杂。当您查看大型应用程序项目的开发人员代码时,实际上在界面构建器中实际上做的很少,因为应用程序非常动态,因此在IB中工作量太大。
使用多个故事板'声音'就像一个好主意,但往往不是。如果你想更新/更改一个,那么在大多数情况下你也必须改变其他的。
我认为很方便:
使用一个故事板(或多个,但是对于app的不同部分而不是并行的),然后将非常“特殊”的情况放入同一类的多个ViewControllers中,以获得不同大小的单个故事板。这样你就不会忘记更新第二个(和第三个)因为它们都在那里。
我只会为支持iPhone和iPad的应用程序使用多个“并行”故事板,真正将它们分开是有道理的。
此外:
我尽可能地使用一个表示法并从代码中的其他“版本”中派生出来。如果您构建了一个结构化的用户界面,那么您可以重用(或只是继承)下一个“隐藏”第一个viewController部分的代码。这样你的代码和你的IB文件就不会混乱。
还要考虑国际化(如果这是你未来计划的一部分),因为多个IB文档和同一个viewController布局的多个实例确实没有帮助;)