UIImageView setImage或setBackgroundColor,哪一个在iOS中更好

iBu*_*Bug 6 objective-c uiimageview ios

我可能会为这个问题投票,但我很好奇,无法找到任何解释.所以我要在这里发布.

我的问题是,我必须在自定义单元格中显示自定义分隔符图像.如果我只是设置背景颜色imageView而不是设置UIImage,那么它是更好的方法吗?

以下是解释我的问题的示例屏幕截图.

在此输入图像描述

在此屏幕截图中,我有黑色和灰色分隔符.

[barImage setBackgroundColor:[UIColor blackColor]];
[greyBarImage setBackgroundColor:[UIColor greyColor]];
Run Code Online (Sandbox Code Playgroud)

要么

[barImage setImage:[UIImage imageNamed:@"black.png"]];
[greyBarImage setImage:[UIImage imageNamed:@"grey.png"]];
Run Code Online (Sandbox Code Playgroud)

现在,哪一个更好?我只知道imageNamed:它有点慢,我们应该避免,但我不确定.

编辑:

这是我在发布此问题后所知道的:

设置图片:

  • 这将耗费RAM
  • 图像不会覆盖整个imageView,因此可能会有不透明的部分 UIImageView

设置背景颜色:

  • 这是CPU的开销,但会减少应用程序内存.
  • 背景颜色将覆盖整体UIImageView,因此整体imageView将是不透明的并且将响应触摸.

Avi*_*are 6

如果两种解决方案都适合您,则设置背景颜色将优于设置图像

[barImage setBackgroundColor:[UIColor blackColor]];
[greyBarImage setBackgroundColor:[UIColor greyColor]];
Run Code Online (Sandbox Code Playgroud)

这样会

1.保存您的应用资源(图片).

2.避免运行时图像加载问题(在重命名替换的情况下).

请参阅简单的绘图应用程序 和图像绘制的应用程序.

  • 但是,如果没有图像,为什么要使用图像视图呢? (2认同)