Странный UISwitch / UILabel.hidden / UIImageView.hidden Проблема! - PullRequest
0 голосов
/ 17 февраля 2010

Извините за постоянные вопросы, но в моем приложении вы можете переключаться, если скрытое свойство 3 UILabels и 1 UIImageview имеет значение YES или NO с помощью переключателей UIS на другой странице (страница настроек). Странная часть в том, что один из UILabels скрыт, даже если объявлено, что он не должен быть скрыт. Вот мой код на странице настроек.


- (IBAction)changeswitch1 {
    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
    if (artworkswitch.on)
        [prefs setInteger:1 forKey:@"AWKey"];
    else
        [prefs setInteger:0 forKey:@"AWKey"];
}
- (IBAction)changeswitch2 {
    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
    if (titleswitch.on)
        [prefs setInteger:1 forKey:@"TKey"];
    else
        [prefs setInteger:0 forKey:@"TKey"];
}
- (IBAction)changeswitch3 {
    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
    if (artistswitch.on)
        [prefs setInteger:1 forKey:@"AKey"];
    else
        [prefs setInteger:0 forKey:@"AKey"];
}
- (IBAction)changeswitch4 {
    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
    if (volumeswitch.on)
        [prefs setInteger:1 forKey:@"VKey"];
    else
        [prefs setInteger:0 forKey:@"VKey"];
}
Все это устанавливается как действие «значение изменено» в IB для 4-х переключателей.

Вот код для главной страницы

if ([prefs integerForKey:@"AWKey"] == 1)
        currentArtwork.hidden = NO;
    else if ([prefs integerForKey:@"AWKey"] == 0)
        currentArtwork.hidden = YES;

    if ([prefs integerForKey:@"TKey"] == 1)
        currentSong.hidden = NO;
    else if ([prefs integerForKey:@"TKey"] == 0)
        currentSong.hidden = YES;

    if ([prefs integerForKey:@"AKey"] == 1)
        currentArtist.hidden = NO;
    else if ([prefs integerForKey:@"AKey"] == 0)
        currentArtist.hidden = YES;

    if ([prefs integerForKey:@"VKey"] == 1)
        volumeview.hidden = NO;
    else if ([prefs integerForKey:@"VKey"] == 0)
        volumeview.hidden = YES;

Ответы [ 2 ]

0 голосов
/ 18 февраля 2010

Моим решением было установить для скрытого свойства label / imageview значение NO при первом запуске.

0 голосов
/ 18 февраля 2010

Это всего лишь предположение, так как я не знаю остальной части кода. Но, возможно, он скрыт, потому что другой UILabel расположен перед ним? Вы можете попробовать:

[self.view bringSubviewToFront:yourLabel];

-Oscar

...