0

我正在尝试创建一个顶部带有“正在播放”栏的音乐应用程序。我正在为 ui 使用标准故事板(UITabbarController->UINavigationController->UITableviewcontroller)

当有人点击 tableview 列表中的轨道时,一个小的 programmaticcaly 创建的 uiview 在导航栏下向下滚动,并且 tableview 向下移动。

这一切都很好。

但是,当通过点击主页按钮将应用程序发送到后台并再次重新打开时,表格视图会立即消失。这只发生在点击 homebutton 锁定 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