resizableImageWithCapInsets

resizableImageWithCapInsets

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

中心有一个透明的圆圈。我的单元格的高度取决于其内容-可能会有所不同。但是我需要这个圆圈始终位于背景图像的中心并具有恒定的大小。

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

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

最佳答案

简单的方法可以涉及三个图像视图:


top imageview:可拉伸的图像,标签图像的顶部
中心图像视图:不可拉伸的固定尺寸图像,标签图像的中心部分包​​括白洞
底部图像视图:可拉伸的图像,标签图像的底部


子类UITableViewCell并覆盖layoutSubviews,以便顶部图像视图始终具有相同的大小,而中心图像视图保留其大小和中心位置。

编辑:

您也可以将stretchableImageWithLeftCapWidth:topCapHeight:方法与不同的笔盖高度一起用于不同的图像。我看不出您的方法无法正常运作的原因。

10-06 14:33