2017-01-31 28 views
0

我在一个发情期..装袋的援助之手..切换照片使用UISwitch和NSMutableArray的

我工作的代码是这样的:

一旦上了开关,显示第一图片,然后在关闭时出现第二张图片。如果打开和关闭三次,当关闭时出现第三张照片和第四张照片。预计这些过程将重复五次。我把图片放在数组中。我如何使用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

定义switchAction处理程序之外的图片列表,以及一个currentPictureIndex跟踪变量。

int currentPictureIndex = 0; 

然后在你的处理器,你可以这样做:

[_imageFrame setImage:[pictureList objectAtIndex:currentPictureIndex++]]; 
if (currentPictureIndex >= pictureList.count) { 
    currentPictureIndex = 0 
} 

这将使该按钮的每一个状态的改变您的图片变化。

+0

thanks million! –

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; 
} 
} 
+0

抱着你我的崇高敬意! –