1

カスタマイズされたタブバーを使用して iPhone アプリケーションを実装しました。選択された/選択されていないタブに使用される画像は、UIImage imageNamed を介して読み込まれます。通常は問題なく動作しますが、ランダムに見えることがありますが、画像の 1 つがロードされて黒い空のスペースに置き換えられると消えてしまいます。もう一度クリックすると、画像が再び表示されます。

いくつかの症状: - 4.3 の iPhone 4 でのみ再現できました。4.2 では発生しませんでした (4.3 と同じくらいテストしました)。- 4.3 の 3GS (低解像度) でテストできませんでした。4.2 では上記と同じですが、発生しませんでした。

私はそれが起こった時間の1つから何とかプリントを取得しました.こことタイトルで指定されているエラーが表示されました:

ImageIO: CGImageRead_mapData 'open' failed '/var/mobile/Applications/7A76BCE5-' エラー = 2 (そのようなファイルまたはディレクトリはありません)

すべてのタブ イメージは次のように開始されます。

UIImageView *tab1ImageViewTemp = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, width, height)];

[tab1ImageViewTemp setImage:[UIImage imageNamed:@"bt_tab1"]];//imagem tab1
[self setTab1ImageView:tab1ImageViewTemp];
[self addSubview:tab1ImageView];
[tab1ImageViewTemp release];

選択/選択解除すると、次のように変更されます。

[tab1ImageView setImage:[UIImage imageNamed:@"bt_tab1_over"]]; //when selected

[tab1ImageView setImage:[UIImage imageNamed:@"bt_tab1"]]; //when unselect

UIImageView は dealloc で正常に解放されます。

このエラーについて手がかりを持っている人...?

4

1 に答える 1

0

(コメントで回答。コミュニティ wiki の回答に変換。回答のない質問を参照してください。ただし、コメントで問題が解決されています (またはチャットで拡張されています) )

@TheBlack は次のように書いています。

これらの画像は、網膜用と低解像度画面用の 2 つの解像度がありますか? また、非常に短い時間で何回も選択/選択解除をトリガーする可能性はありますか? とにかく、名前付きの画像またはインスタンス変数imageWithContentsOfFileに保存して、画像を一度ロードします。UIImages

OP は次のように書いています。

わかりました、上記の解決策で問題が解決したようです。しかし、なぜそれが起こったのかは説明されませんでした。私の推測では、メモリ不足が原因です。他の手がかりはありますか?今はもっと好奇心のために。

于 2015-02-06T23:26:45.173 に答える