我已阅读有关自适应布局的博客,我已经做了一些教程,以便在实践中看到它。我现在想尝试迁移现有的iOS应用程序以支持Adaptive Layout / Size Classes。 在互联网上,现在有很多关于自适应布局的内容,博客,教程等。但它们都是基于建立一个新项目。我似乎无法找到关于如何迁移现有应用程序的某种分步指南。首先采取哪一步,在哪里寻找第二步,替换哪些代码(f.e.initWithFrame)。 在迁移现有应用时,有人知道某种指南吗? 提前谢谢。
答案 0 :(得分:0)
应采取以下步骤:
首先,要在现有应用中采用自适应布局和通用故事板,您需要将现有的故事板转换为通用故事板 - 可以处理任何屏幕大小的界面的故事板。 打开故事板并转到信息面板,同时选中使用自动布局和使用大小类框。
其次,您需要启用 Fulscreen Mode 。
根据Apple的说法: 在运行时,系统会查找故事板启动屏幕文件,以便系统知道您的应用程序支持iPhone 6屏幕大小,包括应用程序包中的故事板启动屏幕文件 如果存在此类文件,系统会假定您的应用程序明确支持iPhone 6和6 Plus并以全屏模式运行。
转到新文件 ...,将新文件添加到您的应用中。在 iOS>用户界面,有一种名为启动屏幕的新文件类型,可为您的应用添加新的启动屏幕。 最后,转到项目的常规设置,并为启动屏幕文件字段选择新的xib文件。
编辑:
您还可以将应用图标和启动图片迁移到资产目录。 转到项目的常规设置,然后单击使用资产目录以获取应用程序图标源。 Xcode会要求您将应用程序图标迁移到资产目录,并迁移现有的启动映像。
注意:如果您仍然支持iOS 7和/或更早版本,则仍需要提供4英寸的启动图像。如果不这样做,您的应用将以3.5“模式显示。
答案 1 :(得分:0)
据我所知,迁移您的应用以支持自适应布局/大小类很可能会启动一个新项目。
按照迁移应用的步骤进行操作。
来到代码,您需要覆盖方法
- (void)updateConstraintsForTraitCollection:(UITraitCollection *)collection
根据大小等级,您需要以编程方式设置约束。
以下是示例代码。
- (void)updateConstraintsForTraitCollection:(UITraitCollection *)collection
{
if (collection.verticalSizeClass == UIUserInterfaceSizeClassCompact) {
//constraints for this specific class will go here
} else {
//default constraints
}
}
在此过程中,您唯一要克服的是设置UI。除此之外,一切都像是开始一个新项目。
希望这会对你有所帮助。 :)