gpt4 book ai didi

iphone - UIImageView 的图像的多重设置

转载 作者:行者123 更新时间:2023-12-03 21:00:20 25 4
gpt4 key购买 nike

最近,我一直在尝试通过使用已分配的 UIImageViews 和 UIImages 来最大限度地减少分配和复制资源作为图像所花费的时间,从而节省渲染时间。

我尝试做的是维护所有 UIImage 的映射 - 每个 UIImage 都是唯一的,并根据游戏引擎的要求将每个 UIImageView 重新分配给多个 UIImageView。随着游戏的进行,我从显示中删除一些 UIImageView,稍后可能会通过不同的预加载 UIImage 重用它们。

第一次创建 UIImageView 时,我会执行以下操作:

m_ImageView = [[UIImageView alloc] initWithImage : initialImg];

[m_ParentView addSubview: m_ImageView];

下面的时间我只是简单地切换图像:

[m_ImageView.image release];

[m_ImageView setImage otherSavedImg];

问题是切换后,显示的新图像尺寸与初始图像尺寸相同。我通过每次重新创建 UIImageView 来绕过这个问题(这似乎是浪费时间),但我想知道为什么会发生这种情况以及如何防止它。

谢谢

最佳答案

UIImageView 的文档说“此方法调整接收器的框架以匹配指定图像的大小。”当调用“setImage:”时,您使用一个简单的属性 setter 。不进行额外的重新计算。如果您需要重新调整 UIImageView 框架的大小,则必须手动执行此操作。

从您提供的上下文来看,这似乎是您会经常做的事情。因此,我建议为 UIImageView 创建一个类别:

UIImageView+Resizing.h:

@interface UIImageView (Resizing)

- (void) setImage:(UIImage *)newImage resize:(BOOL)shouldResize;

@end

UIImageView+Resizing.m:

@implementation UIImageView (Resizing)

- (void) setImage:(UIImage *)newImage resize:(BOOL)shouldResize {
[self setImage:newImage];
if (shouldResize == YES) {
[self sizeToFit];
}
}

@end

现在,每当您需要更改图像并调整 imageView 的大小时,只需 #import UIImageView+Resizing.h 并使用:

[myImageView setImage:anImage resize:YES];

关于iphone - UIImageView 的图像的多重设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1083438/

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