我是一个车辙..帮助帮助..
我正在处理的代码是这样的:
一旦打开,显示第一张图片,然后在关闭时出现第二张图片。如果开关三次,则在关闭时出现第三张图片和第四张图片。这些过程预计将重复五次。我把图片放在数组中。如何使用NSMutableArray和UISwitch来使我的代码生效......?
这些是我的试验:
-(IBAction)switchAction:(id)sender {
if(_switchClick.isOn == YES)
{
NSMutableArray* pictureList = [NSMutableArray arrayWithObjects:[UIImage imageNamed:@"songHae.png"], [UIImage imageNamed:@"pai.png"], nil];
[_imageFrame setImage:[pictureList objectAtIndex:0]];
}
else
{
[_imageFrame setImage:[UIImage imageNamed:@"lion.png"];
}
}
答案 0 :(得分:0)
在switchAction处理程序之外定义图片列表,以及currentPictureIndex跟踪变量。
int currentPictureIndex = 0;
然后在你的处理程序中你可以这样做:
[_imageFrame setImage:[pictureList objectAtIndex:currentPictureIndex++]];
if (currentPictureIndex >= pictureList.count) {
currentPictureIndex = 0
}
这将使您的图片在按钮的每次状态更改时都会发生变化。
答案 1 :(得分:0)
首先,声明数组在函数外部,因此无需在每个开关上初始化它,也需要初始化更多数量的图像(10个图像),因为你想用不同的图像做五次。
int currentPictureIndex = 0;
int numberOfTries = 0;
-(IBAction)switchAction:(id)sender {
if(_switchClick.isOn == YES )
{
[_imageFrame setImage:[pictureList objectAtIndex:currentPictureIndex]];
numberOfTries++;
}
else
{
[_imageFrame setImage:[pictureList objectAtIndex:currentPictureIndex+1]];
}
if(numberOfTries%3 == 0 )
{
currentPictureIndex = currentPictureIndex+2;
}
else if(pictureList.count==currentPictureIndex+2)
{
currentPictureIndex = 0;
numberOfTries = 0;
}
}