我正在尝试创建一个顶部带有“正在播放”栏的音乐应用程序。我正在为 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];
}