所以我正在创建一个在UITableView中显示图像的iPad应用程序,当选择行/图像时,它会推动另一个全屏播放视频的视图控制器。这一切都正常,但我想动画从表格中的图像原始大小到全屏视频的过渡。此视频在http://www.apple.com/ipad/videos/#itunes中显示我想要的大约1秒钟。那么我如何获得所选单元格的框架?我如何将视图从单元格框架转换为全屏?
以下是我现在正在进行的转变:
- (void) tableView: (UITableView *) tableView didSelectRowAtIndexPath: (NSIndexPath *) indexPath
{
if (indexPath.row == 0)
{
VideoViewController * video1 = [[VideoViewController alloc] init];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:video1];
navController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
navController.modalPresentationStyle = UIModalPresentationFullScreen;
navController.navigationBarHidden = YES;
[self presentModalViewController:navController animated:YES];
}
}
答案 0 :(得分:0)
有一个名为UAModalPanel的开源项目,它对你想要达到的目标做了一些非常微笑的事情。您需要通过调用UITableView方法获取单元格视图:
- (UITableViewCell *)cellForRowAtIndexPath:(NSIndexPath *)indexPath
然后您需要使用以下方法将单元格的中心点转换为超视图坐标平面:
- (CGPoint)convertPoint:(CGPoint)point toView:(UIView *)view;
然后您可以将此中心点传递到面板以从那里显示。
完全披露:我是该项目的维护者。