0

So I'm creating an iPad app that displays images in a UITableView and when when a row/image is selected it pushes another view controller that plays a video in full screen. 这一切正常,但我想动画从表格中图像的原始大小到全屏视频的过渡。此处的此视频在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];
    }
}
4

1 回答 1

0

有一个名为UAModalPanel的开源项目,它对您想要实现的目标做了一些非常有趣的事情。您需要通过调用 UITableView 方法来获取您的单元格视图:

- (UITableViewCell *)cellForRowAtIndexPath:(NSIndexPath *)indexPath

然后您需要使用以下方法将单元格的中心点转换为超级视图坐标平面:

 - (CGPoint)convertPoint:(CGPoint)point toView:(UIView *)view;

然后您可以将此中心点传递到面板以从那里显示。




全面披露:我是该项目的维护者。

于 2012-07-05T17:31:19.503 回答