使用resizableImageWithCapInsets制作可伸缩的图像

时间:2013-06-29 09:16:45

标签: iphone ios objective-c

我想使用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。

image to resize 它看起来像实施后 enter image description here

请帮忙。

2 个答案:

答案 0 :(得分: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;

答案 1 :(得分:0)

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

enter image description here

[image resizableImageWithCapInsets:UIEdgeInsetsMake(20.f, 12.f, 19.f, 19.f)]