iphone SDK условно в функции переключателя - PullRequest
1 голос
/ 01 мая 2010

Я пытаюсь, чтобы случайное изображение появлялось при нажатии кнопки. Таким образом, он генерирует случайное число, и алгоритм переключения меняет выбранное изображение на изображение в imgview. но я хочу, чтобы переключатель в приложении настроек переключал набор изображений для использования. Я очень хорошо знаю, как это сделать ... просто это не работает. Мне не хватает синтаксиса ...

int Number = rand() %30;

NSString *toggleValue = [[NSUserDefaults standardUserDefaults] stringForKey:@"enabled_preference"];

switch (Number) {

        if (*toggleValue == 0) {
        case 0:
            picture.image = [UIImage imageNamed:@"1.png"];
            break;

        case 1:
            picture.image = [UIImage imageNamed:@"2.png"];

            break;}

else {

        case 0:
            picture.image = [UIImage imageNamed:@"3.png"];
            break;

        case 1:
            picture.image = [UIImage imageNamed:@"4.png"];

            break;}
}

Ответы [ 4 ]

2 голосов
/ 01 мая 2010
NSString *toggleValue = [[NSUserDefaults standardUserDefaults] stringForKey:@"enabled_preference"];
NSArray *imagesA = [NSArray arrayWithObjects:@"img1.png" , @"img2.png" , ... , nil];
NSArray *imagesB = [NSArray arrayWithObjects:@"img8.png" , @"img9.png" , ... , nil];
NSArray *images = [toggleValue integerValue] ? imagesA : imagesB;
NSString *name = [images objectAtIndex:rand() % [images count]];
picture.image = [UIImage imageNamed:name];
1 голос
/ 01 мая 2010

Вы не можете поместить if в такой переключатель ... попробуйте этот синтаксис:

if (*toggleValue == 0) 
{
    switch (Number) 
    {
        case 0:picture.image = [UIImage imageNamed:@"1.png"]; break;
        case 1:picture.image = [UIImage imageNamed:@"2.png"];break;
    }
}
else 
{
    switch (Number) 
    {
        case 0:picture.image = [UIImage imageNamed:@"3.png"];break;
        case 1:picture.image = [UIImage imageNamed:@"4.png"];break;
    }

}
0 голосов
/ 12 мая 2011

Я думаю, вы ищете способ просто использовать номер, чтобы открыть изображение ..

Если это так, то это код:

NSString *theImage = [[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"%d.toggleEnabled", sliceIndex] ofType:@"png"]; picture.image = [[UIImage alloc] initWithContentsOfFile: theImage];

если вы назвали свои изображения по-другому, вы также можете настроить его на переключение.

0 голосов
/ 01 мая 2010
int randomInt = rand() % 30;

if (toggleEnabled) {
    switch (randomInt) {
        case 0:
            picture.image = [UIImage imageNamed:@"0.toggleEnabled.png"];
            break;    
        case 1:
            picture.image = [UIImage imageNamed:@"1.toggleEnabled.png"];
            break;
        // ...
    }
else {
    switch (randomInt) {
        case 0:
            picture.image = [UIImage imageNamed:@"0.toggleDisabled.png"];
            break;
        // ...
    }
}
...