0

上部に「再生中」バーがある音楽アプリケーションを作成しようとしています。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];
}
4

0 に答える 0