将特定图像设置为UIImageView

时间:2015-05-17 11:28:56

标签: ios objective-c random uiimageview

我有10个名为0.png到9.png的图像,而且随机发生器给我一个这10个之间的随机数。

根据随机客户给我的数量,我想将UIImageView设置为该图像。

我的想法就是这样做:

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

当我使用随机数设置NSLog的文字时,这可以正常工作:

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

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

  

方法调用的参数太多,除了1,有2个

2 个答案:

答案 0 :(得分:2)

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

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

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

然后,您可以使用随机数作为图像名称数组的索引,而不是自己构建图像名称。

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

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

答案 1 :(得分:1)

您应该使用以下代码:

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

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

另外,您说0.png9.png,但使用jpg构建图像名称。请检查分机