0

いつも質問して申し訳ありませんが、私のアプリでは、3 つの UILabels と 1 つの UIImageview の隠しプロパティが別のページ (設定ページ) の UISwitchs を介して YES または NO であるかどうかを切り替えることができます。奇妙な部分は、非表示にしないと宣言されている場合でも、UILabels の 1 つが非表示になっていることです。これが設定ページの私のコードです。


- (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;
4

2 に答える 2

0

コードの解像度がわからないので、これは単なる推測です。しかし、別の UILabel がその前に配置されているため、非表示になっている可能性がありますか?. あなたが試すことができます:

[self.view bringSubviewToFront:yourLabel];

-オスカー

于 2010-02-17T21:48:38.287 に答える
0

私の解決策は、最初の起動時にラベル/イメージビューの隠しプロパティを NO に設定することでした。

于 2010-02-18T20:04:07.270 に答える