簡體   English   中英

iphone sdk有條件的開關功能

[英]iphone sdk conditional in switch function

我正在嘗試使隨機圖像出現在按鈕上。 因此,它生成一個隨機數,並且切換算法將所選圖像與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;}
}
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];

您不能將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;
    }

}
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;
        // ...
    }
}

我在想您正在尋找一種僅使用數字打開圖像的方法。

在這種情況下,代碼如下:

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

如果您以不同的方式命名圖像,則也可以讓它處理切換。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM