2013-12-12 73 views
1

我試圖使用UISwitch在打開時顯示圖像,並在關閉時隱藏該圖像。我一直遇到圖像顯示開關打開時的問題,但當開關關閉時它不會隱藏。我在網上嘗試了一些不同的解決方案,但似乎沒有任何工作。使用UISwitch顯示/隱藏圖像

這是我試過的解決方案之一。是否有另一種方法來確定開關是否在switchname.on之外?也許如果其他語句不是要走的路?

任何幫助,非常感謝!

@property(nonatomic, strong) UIImageView *spawnImage; 


- (IBAction)changeSwitch:(id)sender{ 

UIImageView *spawnImage = [[UIImageView alloc] initWithFrame:CGRectMake(10, 70, 300, 169)]; 

if(spawnPoints.on){ 
    NSLog(@"Switch is ON"); 
    [spawnImage setImage:[UIImage imageNamed:@"freight-spawn.png"]]; 

} 

else{ 
    NSLog(@"Switch is OFF"); 
    [spawnImage setImage:[UIImage imageNamed:@"freight-none.png"]]; 

} 

[self.view addSubview:spawnImage]; 
} 

更新!

感謝@meda我們想出了一個解決方案。

.H

@interface ViewController: UIViewController { 
    IBOutlet UIImageView *spawnImage; 
} 

的.m

-(IBAction)changeSwitch:(id)sender{ 
if(spawnPoints.on){ 
    NSLog(@"Switch is ON"); 
    [spawnImage setImage:[UIImage imageNamed:@"freight-spawn.png"]]; 
} 

else{ 
    NSLog(@"Switch is OFF"); 
    [spawnImage setImage:[UIImage imageNamed:@"freight-none.png"]]; 
} 

[self.view addSubview:spawnImage]; 
} 

注意,這是一個IB解決方案,其中一個空白的UIImageView必須和位置被拖動並接通到在連接所述出口。

回答

0

是否有另一種方法來確定開關是否在switchname.on之外?

是的,你可以嘗試isOn而不是on

if(spawnPoints.isOn){ 
     NSLog(@"Switch is ON"); 
     [spawnImage setImage:[UIImage imageNamed:@"freight-spawn.png"]]; 
    } 
    else{ 
     NSLog(@"Switch is OFF"); 
     [spawnImage setImage:[UIImage imageNamed:@"freight-none.png"]]; 
    } 

[spawnImage setImage:[UIImage imageNamed:spawnPoints.isOn? 
        @"freight-spawn.png": @"freight-none.png"]]; 
+0

仍然有同樣的問題,第一個圖像顯示在開關的變化,但不會隱藏。 – Seslyn

+0

@Seslyn你需要在你的界面文件中有'@property(strong,nonatomic)IBOutlet UISwitch * spawnPoints'' – meda

+0

是的,我有。 – Seslyn