上部に「再生中」バーがある音楽アプリケーションを作成しようとしています。UIに標準のストーリーボードを使用しています(UITabbarController-> UINavigationController-> UITableviewcontroller)
誰かがテーブルビュー リストのトラックをタップすると、プログラムで作成された小さな uiview がナビゲーション バーの下にスクロール ダウンし、テーブルビューが下に移動します。
これはすべてうまくいっています。
ただし、ホームボタンをタップしてアプリケーションをバックグラウンドに送り、再度開くと、テーブルビューは一瞬で消えます。これは、ホームボタンをタップして iPhone をロックし、ロックを解除しても問題がない場合にのみ発生します。
これは、UIView をアニメーション化するコードです
CGRect frame = self.tableView.frame;
frame.origin.y += 60;
frame.size.height -= 60;
if(!nowPlayingPopDown){
//setup nowplaying view
nowPlayingPopDown = [[UIView alloc] initWithFrame:CGRectMake(0, -60, 320, 60)];
CGRect nowPlayingPopDownAnimatedLocation = CGRectMake(0, 0, 320, 60);
nowPlayingPopDown.backgroundColor = [UIColor whiteColor];
[self.view.superview addSubview:nowPlayingPopDown];
//setup waveform background
nowPlayingPopDownWaveformBackground = [[UIView alloc] initWithFrame:CGRectMake(60, 0, 0, 60)];
nowPlayingPopDownWaveformBackground.backgroundColor = [UIColor orangeColor];
[nowPlayingPopDown addSubview:nowPlayingPopDownWaveformBackground];
//setup waveform imageview
nowPlayingPopDownWaveform = [[UIImageView alloc] initWithFrame:CGRectMake(60, 0, 260, 60)];
[nowPlayingPopDown addSubview:nowPlayingPopDownWaveform];
//animate nowplaying bar in
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.5];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
self.tableView.frame = frame;
nowPlayingPopDown.frame = nowPlayingPopDownAnimatedLocation;
[UIView commitAnimations];
}