如何用图像替换 UIView?

Posted

技术标签:

【中文标题】如何用图像替换 UIView?【英文标题】:How do I replace a UIView with an image? 【发布时间】:2017-06-15 14:45:03 【问题描述】:

在我的程序中,我做了类似this 视频的操作,并使我的 UIView 可拖动。我正在制作一个 Space Invaders 类型的游戏,我需要 UIView 作为宇宙飞船。它目前只是一个普通的 UIView 白色矩形。有没有办法将作为 UIView 的白色矩形替换为图像?还是我会以错误的方式解决这个问题?

【问题讨论】:

使用UIImageView 【参考方案1】:

有没有办法将作为 UIView 的白色矩形替换为图像?

当然,您可以使用UIImageView 代替您当前使用的UIView。然后,您只需配置图像视图以显示您想要的任何图像。

另一种选择是创建您自己的 UIView 子类,它知道如何绘制其内容(在本例中为宇宙飞船)。

或者我会以错误的方式解决这个问题?

像您正在构建的游戏通常使用精灵来绘制游戏的各个部分,精灵是二维图像的动画序列。这是很常见的事情,许多平台都提供了专门用于有效绘制和移动精灵的库。在 ios 上,该库称为 SpriteKit,与尝试使用视图绘制所有内容相比,它可能是您尝试做的更好的选择。

同样,有一个名为 SceneKit 的框架用于处理 3D 对象。这可能比您想要的更高级,尤其是在您刚刚开始的时候。

【讨论】:

如果您正在创建“太空入侵者”类型的游戏,我肯定会花时间学习和使用 SpriteKit。这就是它的目的!:)【参考方案2】:

你不需要替换它,你可以在UIView中添加一个UIImageView

UIView *view = your view;
UIImageView *imageView = [[UIImageView alloc] initWithFrame:view.frame];
[imageView setImage:[UIImage imageNamed:@""]];
[view addSubview:imageView];

【讨论】:

以上是关于如何用图像替换 UIView?的主要内容,如果未能解决你的问题,请参考以下文章

如何用用户选择的照片替换图像

如何用从 ImagePickerController 拍摄的照片替换 UIButton 图像

如何用图像替换单选按钮? [复制]

如何用资源中没有的其他图像替换 QML(Qt)文件上的图像

如何用 dojo 增强网格中的文本替换超链接?

如何用android studio替换所有屏幕尺寸图像的可绘制图像?