-3

我有 1.6 mb 的 .png 图像。我使用了几个具有 17 mb 内存大小的类,但我的项目大小约为 40 mb。任何人都可以建议减少应用程序大小以上传到应用程序商店的最佳解决方案。建议我如何在我的目标文件中找到最大的文件。(我使用了图像资产,我没有未使用的代码)。

4

2 回答 2

1

帮助您的技术列表:

删除未使用的代码

通常第三方库有很多未使用的代码。包括仅与该应用程序中使用的功能相关的代码。如果您发现任何未在应用程序中使用的图像、音乐、额外内容,应从项目中删除。按需加载资源

如果您的项目包含预计很少需要的资源(如教程视频或图形),请考虑将这些资源移至某处的 Web 服务器上,并让您的应用程序按需加载它们。Amazon 的 S3 服务或 Linode 上的小型 VPS 通常可以很好地解决问题。这种技术需要谨慎,因为您希望避免在安装后因大量下载而让用户感到沮丧。

使用带图案的图像

UIColor 包含一个很棒的功能,可以减少在项目中包含大型纹理图像的需要。上面显示了一个示例,您希望为您的应用程序提供一个风格化的背景,尽管此技术同样适用于您希望向 UI 控件添加纹理的较小区域。只需将所需视图的背景颜色设置为这样的图案颜色:

view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"pattern.png"]];

视图现在将有一个带纹理的背景,它会随着视图的大小进行缩放和调整。Subtle Patterns 项目是很好地平铺纹理的一个很好的来源。

使用拉伸图像

UIImage 包括一种创建随大小动态缩放的图像的高性能方法。图像设置为使中间部分拉伸,保持边缘不变。这通常用于诸如按钮之类的东西,其中角落和侧面的样式但按钮的主体是普通的。我也很适合在表格视图中创建“蚀刻”效果(如上面的 App Store 示例)。这里不是创建一个代表单元格背景的 320x48 图像,而是创建一个具有所需顶部、主体和底部颜色的微小 1x3 图像。然后将其分配为您的 backgroundView,从而产生显示的效果。

UIImage* template  = [UIImage imageName:@"template.png"];
UIImage* stretched = [template resizableImageWithCapInsets:UIEdgeInsetsMake(1, 0, 1, 0)]
cell.backgroundView = [[UIImageView alloc] initWithImage:stretched];
于 2017-01-04T07:17:17.253 回答
0

您需要在您的应用程序中使用图像资产。在 Assets.xcassets 文件中添加所有图像。

于 2017-01-04T07:28:43.563 回答