0

我想使用 resizableImageWithCapInsets 方法调整图像大小。但它没有伸展。我也不知道 UIEdgeInsetsMake 的真正基础。谁能告诉我它是如何工作的。我正在使用这段代码:

UIImage *mars = [UIImage imageNamed:@"button.png" ];
    UIImage* marsTiled = [mars resizableImageWithCapInsets:
                          UIEdgeInsetsMake(mars.size.height/4.0,
                                           mars.size.width/4.0,
                                           mars.size.height/4.0,
                                           mars.size.width/4.0)
                                              resizingMode: UIImageResizingModeStretch];

    [containerView addSubview:marsTiled];

这里的容器视图是 uiview。

要调整大小的图像 它看起来像在实施后 在此处输入图像描述

请帮忙。

4

2 回答 2

0

尝试这个:

UIImage *rawEntryBackground = [UIImage imageNamed:@"MessageEntryInputField.png"];
UIImage *entryBackground = [rawEntryBackground stretchableImageWithLeftCapWidth:13 topCapHeight:22];
UIImageView *entryImageView = [[[UIImageView alloc] initWithImage:entryBackground] autorelease];
entryImageView.frame = CGRectMake(5, 0, 248, 40);
entryImageView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
于 2013-06-29T09:28:49.383 回答
0

UIEdgeInsets让您指定一个不会被拉伸并因此保持原样的区域。在您的情况下,您可能希望图像在圆的中间被拉伸,因此必须通过指定, , ,UIEdgeInsetsMake()的值来指定从图像边界到圆中间的插图。我建议使用 Photoshop 或 Preview 之类的工具和选取框选择功能来确定插图。您还想将 UIImageView 添加到您的 containerView 而不是直接添加图像。topleftbottomright

在此处输入图像描述

[image resizableImageWithCapInsets:UIEdgeInsetsMake(20.f, 12.f, 19.f, 19.f)]
于 2013-06-29T10:28:19.527 回答