gpt4 book ai didi

ios - 在 viewDidLoad 处将可调整大小的 UIImage 设置为 UIImageView 被忽略

转载 作者:行者123 更新时间:2023-12-01 16:55:40 25 4
gpt4 key购买 nike

我有一个 UIImageView带有我想要可拉伸(stretch)的图像。
为了实现这一点,我在 viewDidLoad 中执行以下操作:

-(void) buildResizableDescriptionAreaBackground
{
UIImage *image = [UIImage imageNamed:@"description_area_background"];
CGFloat top = ceilf(image.size.height / 2.0) - 1;
CGFloat bottom = floorf(image.size.height / 2.0);
CGFloat left = ceilf(image.size.height / 2.0) - 1;
CGFloat right = floorf(image.size.height / 2.0);
if ([image respondsToSelector:@selector(resizableImageWithCapInsets:)])
{
image = [image resizableImageWithCapInsets:UIEdgeInsetsMake(top, left, bottom, right)];
}
else
{
image = [image stretchableImageWithLeftCapWidth:left topCapHeight:top];
}
[self.descriptionAreaBackgroundImage setImage:image];
[self.descriptionAreaBackgroundImage setHighlightedImage:image];
}

当我调试它时,我确保 descriptionAreaBackgroundImage不为零,不隐藏,alpha = 1 并且具有正确的帧。
此外,我确保图像不为零,具有正确的大小,并且可调整大小的图像也不为零。然而图像未设置为 UIImageView。

如果我在 viewDidAppear: 这样做一切正常。
如果我设置一个常规图像(不可拉伸(stretch),即使在 viewDidLoad )一切正常。

据我所知,任何不需要 super View 或窗口的设置都可以在 viewDidLoad 完成。 ,那么为什么它不起作用?

最佳答案

看起来您的 UIEdgeInsetsMake() 调用指定了 0x0 点的区域。尝试确保指定一个 1x1 区域。

例如,您的可拉伸(stretch)图像的大小为 7x7 像素,并且您希望拉伸(stretch)中心像素,您可以像这样指定边缘插入: UIEdgeInsetsMake(3.0f, 3.0f, 3.0f, 3.0f)

关于ios - 在 viewDidLoad 处将可调整大小的 UIImage 设置为 UIImageView 被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12026758/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com