我读过关于自适应布局的博客,我做了一些教程来看看它的实践。现在,我想尝试迁移一个现有的iOS应用程序来支持自适应布局/大小类。在互联网上,现在有很多关于自适应布局的内容,博客,教程等等,但它们都是基于建立一个新的项目。我似乎找不到任何关于如何迁移现有应用程序的逐步指南。首先采取哪一步,在哪里寻找第二步,替换哪些代码段(f.e.initWithFrame)。有没有人知道在迁移现有应用程序时应该遵循的某种指南?提前谢谢。
发布于 2015-03-05 17:29:02
应采取以下步骤:
首先,要在现有的应用程序中采用自适应布局和通用故事板,您需要将现有的故事板转换为通用故事板-一个可以处理任何屏幕大小的界面的故事板。打开你的序列图像板,进入信息面板,选中Use Auto Layout和Use Size Classes复选框。
其次,您需要启用全屏模式。
根据苹果公司的说法:在运行时,系统会查找情节提要启动屏幕文件,以便让系统知道你的应用程序支持iPhone 6屏幕尺寸,包括你的应用程序捆绑包中的情节提要启动屏幕文件。如果存在这样的文件,系统会假定你的应用程序明确支持iPhone 6和6 Plus,并以全屏模式运行它。
转到新建文件…将新文件添加到您的应用程序。在iOS > User Interface中,有一种名为Launch Screen的新文件类型,它会为您的应用程序添加一个新的启动屏幕。最后,转到项目的常规设置并为字段Launch Screen File选择新的xib文件。
编辑:
您还可以将应用程序图标和启动图像迁移到资产目录。转到项目的常规设置,然后单击Use Asset Catalog App Icons Source。Xcode将要求您将应用程序图标迁移到资产目录,并迁移现有的启动映像。
注意:如果你仍然支持iOS 7和/或更早的版本,你仍然需要提供4英寸的启动图像。如果你不这样做,你的应用程序将以3.5英寸的模式显示。
发布于 2015-03-21 13:57:53
据我所知,迁移你的应用程序以支持自适应布局/大小类很可能是启动一个新项目。
按照迁移应用程序的步骤进行操作。
接下来是重写该方法所需的代码
- (void)updateConstraintsForTraitCollection:(UITraitCollection *)collection根据size类的不同,您需要以编程方式设置约束。
下面是示例代码。
- (void)updateConstraintsForTraitCollection:(UITraitCollection *)collection
{
if (collection.verticalSizeClass == UIUserInterfaceSizeClassCompact) {
//constraints for this specific class will go here
} else {
//default constraints
}
}在此过程中,您唯一要克服的问题就是设置UI。除此之外,一切都像是启动了一个新项目。
希望这对你有帮助。:)
https://stackoverflow.com/questions/28646365
复制相似问题