界面构建 - UIViews vs Images vs Core graphics vs PDF 子类

Posted

技术标签:

【中文标题】界面构建 - UIViews vs Images vs Core graphics vs PDF 子类【英文标题】:Interface building - UIViews vs Images vs Core graphics vs PDF subclass 【发布时间】:2013-05-12 09:04:43 【问题描述】:

我的应用使用平面图形,主要由线条和平面组成...

构建 UI 的最佳方法是什么?

尽可能使用PNG图片(比如附件图片,整个背景都是一张图片)

使用 4 个带有背景颜色的 UIView(在本例中)来制作背景和 3 行

使用 CoreGraphics 在 drawRect(或其他地方?)中实际绘制?

继承 UIView 并绘制 PDF 内容

还有其他方法吗?

对性能有什么影响?前两者的优点是它们可以在 IB 中完成,但是否有缺点(如性能或质量或缓存)?我还听说一直使用 CoreGraphics 进行绘图的趋势...

【问题讨论】:

@ThilinaHewagama 没那么简单。 @Peter Lapisu,是的,使用 PNG 文件很容易。 1 用于背景,最好将其他图像放在 UIImageViews 中(在背景视图之上); 一个大视图。上面有两个小视图。顶部、底部和垂直 3 张图片。 【参考方案1】:

因此,基本上最快的方法是使用 PNG 文件(可拉伸且正常),如果您使用的是 PNG 文件,则可以轻松更改设计并修复最终的错误。

当您使用 PNG 文件时,请尝试减小 PNG(背景可拉伸图像)的大小,以获得更好的性能和更小的应用程序尺寸。

CoreGraphics 更复杂,如果您不知道自己在做什么,可能会添加奇怪的错误或性能问题,但也可以用于简单的视图样式。

在我完成的每个项目中,我不能只使用这两个中的一个,因为项目复杂,或者因为我懒得打开 Photoshop 并添加一些设计。

【讨论】:

【参考方案2】:

正如 H2CO3 所说,并不是那么简单。每种格式都有特定的要求,没有成文的法律,我只是告诉你我的工作。

    UI 的小片段,例如按钮、图标等:我通常使用 PNG 或 PDF。您可以将 UIView 子类化以绘制 PDF 矢量内容。 PDF 的优点是,如果源是矢量图像,则无需关注物理逻辑点。 图像或高分辨率图像,例如内容的图像:在这种情况下,我使用 JPG,因为它们相对于 PNG 尺寸较小。它们需要更多的时间来解压缩,但与 PNG 相比,它们的大小通常要小得多。 一般PNG可以使用alpha,JPG不行

图像是一个很大的话题,现在我总是尝试一种方法来找到 UI 元素中的对称性,并将可拉伸的 UIImages 与 PNG 一起使用。 以你为例,我将使用 PNG 女巫可拉伸的左右两侧。除了使用 640 像素的图像,您可以使用 10 像素的图像,具有可拉伸的右边距和可拉伸的左边距。[更新] 应该说,如果你使用可拉伸的图像,你会得到很大的性能提升,因为图像会更小,你会占用更少的“磁盘”内存,更少的堆内存,这要归功于GPU的拉伸和解压缩次 .

【讨论】:

如何继承 UIView 来绘制 PDF?你能举个例子吗? Ovveriding -drawRect 并使用 Core Graphics 检查这个 ;-) mattgemmell.com/2012/02/10/using-pdf-images-in-ios-apps

以上是关于界面构建 - UIViews vs Images vs Core graphics vs PDF 子类的主要内容,如果未能解决你的问题,请参考以下文章

iPhone UI - WebView VS 原生屏幕

如何打乱一组 UIViews

如何在 iOS 4 中从 UIViews 加载 nib?

许多 UIViews + QLViewController = 性能非常慢

为 PDF 查看器自动调整 UIViews 的大小

ios UIview 在视图中