我想拉伸(stretch)尺寸为 170x50 的图像并将其显示在尺寸为 240x140 的 ImageView 中。 原始图像如下所示:
我想保留四个角,只拉伸(stretch)中心部分。我使用以下代码:
UIImage *originalImg = [UIImage imageNamed:@"ImageNamed"];
UIImage *resizeImg = [originalImg resizableImageWithCapInsets:UIEdgeInsetsMake(20 ,10, 10, 10)];
self.originalImgV.image = originalImg;
self.resizedImgV.image = resizeImg;
originalImgV 和 resizedImgV 都设置为“纵横比填充”。我在模拟器上运行它,结果是:
我无法理解的是:resizedImgV 有 2 个箭头! 谁能告诉我为什么以及如何正确使用它? 谢谢
最佳答案
您的问题与您传递给 UIEdgeInsetsMake
的值有关。值是上、左、下、右。由于左上角的箭头,您需要确保左值足够大,以便从图像的左边缘到箭头的右侧。
鉴于您发布的图像,您需要类似的东西:
UIEdgeInsetsMake(12, 32, 4, 4)
顺便说一句 - 图像应该只有左 + 右 + 1 像素宽和顶部 + 底部 + 1 像素高。所以您的图像不需要像现在一样大。
关于ios - 如何使用 [UIImage resizableImageWithCapInsets :],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18605514/