将特定图像设置为 UIImageView

Setting specific image to UIImageView

我有 10 张图片,名为 0.png 到 9.png,还有一个随机发生器给我一个介于这 10 张之间的随机数。

根据随机化器给我的数字,我想用那个图像设置我的 UIImageView

我的想法是这样的:

[image setImage:[UIImage imageNamed: @"%d.jpg", currentQuestion]];

因为当我用这样的随机数设置 NSLog 的文本时它工作正常:

NSLog(@"Some Text %d", currentQuestion);

然而,当我尝试设置图像时出现此错误:

Too many arguments to method call, excepted 1, have 2

您应该改用以下代码:

[image setImage:[UIImage imageNamed:[NSString stringWithFormat:@"%d.jpg", currentQuestion]]];

+imageNamed: 只接受一个参数,你应该将其构造为格式化字符串,而 NSLog 可以接受可变数量的参数

你还说你有 0.png9.png 但使用 jpg 构建图像名称。请也检查扩展

首先,正如@Azat 所说,您应该使用一个特定的 NSString 作为 imageNamed: 方法的参数。

此外,实现此目的的更好方法可能是使用 NSArray 来存储这些候选图像的名称,例如:

NSArray *imageNames = @[@"1.png", @"2.png", @"3.png"];

那么,你可以使用随机数作为图片名称数组的索引,而不是自己构造图片名称。

[image setImage:[UIImage imageNamed:imageNames[currentQuestion]]]

这样做的一个好处是,即使更改了图像的名称,您也无需修改代码,只需更改图像名称数组中的名称即可。