iPhone:如何扩展可重复的UIImage?

时间:2011-07-28 10:06:13

标签: iphone objective-c ios uiimageview uiimage

我有一张图片用于构建推文。它由两个圆形的rects组成,左上角有一个twitter图标。重要的是它是可重复的,因为你可以垂直复制中间部分的任何部分,它会相同,只是更长。这是我创建的图像:

Tweet Frame

我的问题是,在代码中,我是如何扩展(或缩小)依赖于我的UITextView中有多少行?这样的东西来获得大小:

float requiredHeight = lines * 14;

我知道这是可能的,因为苹果用他们的短信应用程序来做:)


更新:以下是执行此操作的完整代码:

UIImage *loadImage = [UIImage imageNamed:@"TwitPost.png"];
float w2 = loadImage.size.width/2;
float h2 = loadImage.size.height/2;
// I have now reduced the image size so the height must be offset a little (otherwise it stretches the bird!):
loadImage = [loadImage stretchableImageWithLeftCapWidth:w2 topCapHeight:h2+15];
imageView.image = loadImage;

感谢您的回答。

2 个答案:

答案 0 :(得分:6)

使用

- (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeight

将leftCapWidth和topCapHeight设置为图像宽度和高度的一半。您可以通过更改其边界/框架在UIImageView中拉伸此图像。

答案 1 :(得分:4)

查看UIImage的文档。具体做法是:

- (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeight

这允许您使用重复leftCapWidth或topCapHeight部分的图像来水平或垂直拉伸它。