2

我想了解 resizableImageWithCapInsets 的工作原理,所以我找到了这张图片

在此处输入图像描述

图像的大小是 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];

但这是结果

在此处输入图像描述

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

你知道为什么吗?

感谢您的回答。

4

1 回答 1

1

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

目前,您在图像的中心为可拉伸区域指定了 0 的宽度,因此它在单点处拉伸了中间的箭头。顶部和底部的插图看起来不错,所以你的目标是这样的:

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

即图像左右两边各留出 10 px 的边距。

希望有帮助

于 2012-06-08T12:56:58.373 回答