2013-12-12 6 views
1

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

Это одно из решений, которые я пробовал. Есть ли другой способ определить, включен ли переключатель в сторону от switchchname.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

Есть ли другой способ определить, включен ли переключатель в сторону от переключателя?

Да, вы можете попробовать 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 (сильный, неатомный) IBOutlet UISwitch * spawnPoints;' в вашем файле интерфейса – meda

+0

Да, у меня это есть. – Seslyn

Смежные вопросы