iOS - resizableImageWithCapInsets没有按预期工作

时间:2012-06-08 12:45:17

标签: iphone ios ipad uiimage

我想了解resizableImageWithCapInsets是如何工作的,所以我找到了这个图像

enter image description here

图像的大小是57x51所以我创建了这样的图像

image = [[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] 
pathForResource:@"PopoverViewBlackBackgroundArrowDown" ofType:@"png"]] 
resizableImageWithCapInsets:UIEdgeInsetsMake(25.0, 28.0, 25.0, 28.0)];

和像这样的图像视图

UIImageView *backgroundImageView = [[UIImageView alloc] initWithImage:image];
backgroundImageView.frame = CGRectMake(0.0f, 0.0f, 210.0f, 110.0f);
[self.view addSubview:backgroundImageView];

但这是结果

enter image description here

它看起来不像传统的UIPopoverController。箭头也会调整大小。

你知道为什么吗?

感谢您的回答。

1 个答案:

答案 0 :(得分:1)

我认为您的问题是边缘插入设置不正确。您应该尝试做的是将左右插图移动到箭头区域的一侧。

当你在图像的中心给予可伸展区域宽度为0的时刻时,它在单个点处拉伸中间的箭头。顶部和底部的插图看起来还不错,所以你的目标就是这样:

resizableImageWithCapInsets:UIEdgeInsetsMake(25.0, 10.0, 25.0, 47.0)];

即图像左侧和右侧的10 px边距。

希望有所帮助