iOS 4中的resizableImageWithCapInsets

时间:2013-05-27 14:11:50

标签: ios objective-c

我需要为每个表格单元创建一个非常复杂的背景图像:http://i.stack.imgur.com/PBL0S.png

它的中心有一个透明的圆圈。我的细胞高度取决于它的含量 - 它可能会有所不同。但我需要这个圆圈始终位于背景图像的中心并且具有恒定的大小。

我的解决方案是:将图像剪切为2个部分,然后使用方法resizableImageWithCapInsets:创建两个UIImageView并将它们一个放在另一个之下。有问题:此方法仅在iOS 5之后可用,但我的应用程序需要在iOS 4.3下运行。不幸的是,我不能使用方法stretchableImageWithLeftCapWidth:topCapHeight:,因为我的半图像的顶部和底部上限获得了不同的高度。

请帮助我创建具有相同功能的方法resizableImageWithCapInsets:或者,如果有更好的解决方案,请告诉我。

1 个答案:

答案 0 :(得分:2)

直截了当的方法可能涉及三个图像视图:

  • top imageview:带有标记图像顶部的可伸缩图像
  • 中心imageview:不可伸缩的固定尺寸图像,标记图像的中心部分包​​括白洞
  • bottom imageview:带有标记图像底部的可伸缩图像

子类UITableViewCell并覆盖layoutSubviews,使得顶部图片视图的大小始终相同,中心图像视图保留其大小和中心位置。

编辑:

对于不同的图像,您还可以使用具有不同上限高度的stretchableImageWithLeftCapWidth:topCapHeight:方法。我没有看到为什么你的方法不能正常工作的原因。