colorWithPatternImage与UIImageView的区别

7

如果我只想为UIView设置背景图像,哪种方法更好?我可以使用任何一种方法来实现这一目标,但哪种方法更有效?我的直觉告诉我,使用带有colorWithPaternImageUIView比使用UIImageView更有效。我将在UITableView中的每一行中使用此选项。谢谢! Matt

2个回答

15

我完全不同意boreas的看法。根据您的需求,使用colorWithPatternImage与其他策略相比可能会有显着差异。例如,如果您正在使用UIScrollView,则使用colorWithPatternImage将不允许图像滚动。这通常也取决于您的视图有多大,因为不同平铺策略之间存在一些性能与内存占用的权衡。

请查看WWDC 2010会议104,该会议讨论了使用CATiledLayer进行平铺性能优化的方法。这是一个良好的高性能替代品,可以代替使用内置的colorWithPatternImageCGContextDrawTiledImage

如果您的需求仅是显示单个320x480的静态图像,则各种策略之间不会有任何显着的差异,但是如果您的需求更加复杂,则肯定会有差异。


1
如果我不想让图像平铺,而只是想让它像使用 UIImageView 一样只显示一次,该怎么办? - ma11hew28
如果您不想让图像平铺,除非您为设置背景颜色的视图与设置为背景模式的图像完全相同大小,否则您不能使用backgroundColor colorWithPatternImage。 在这种情况下,您需要将UIImageView添加为子视图。 简单视图在iOS中随处可见,通常对性能影响很小。 因此,为您的tableviewcell拥有自定义背景图像没有任何问题。 - memmons
那么,如果我为设置背景颜色的视图与我设置为背景图案的图像大小完全相同,使用colorWithPatternImage比使用UIImageView更有效吗?如果在屏幕上仅显示一次图像,或者在每个表格视图单元格中显示相同或不同的图像,是否会有所不同? - ma11hew28

1

是的,那里已经有一个UIView了,为什么还要麻烦再加一个UIImageView呢?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接