【问题标题】:How to access UITableView cell frame in animateTransition:transitionContext如何在 animateTransition:transitionContext 中访问 UITableView 单元格框架
【发布时间】:2015-05-01 13:37:14
【问题描述】:

我正在尝试进行模态自定义转换,其中我需要将框架作为我正在转换的视图控制器中的 tableview 的第一个单元格 TO。 当我将断点放在animateTransition:transitionContext 之后,代码如下:

NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
UITableViewCell *cell = [toViewController.tableView cellForRowAtIndexPath:indexPath];

我看到 tableview 以及页面上的所有其他控件都是 nil。

经过大量搜索,我找到了一个类似的问题,建议在推送 vc 时使用以下代码:

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.02 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
    [self presentViewController:detailViewController animated:YES completion:nil];
});

但这不起作用,tableview 和所有其他页面元素在animateTransition:transitionContext 中都是 nil

我知道我得到 nil 是因为在视图生命周期的这一点上,还没有计算 tableview,但是没有什么方法可以在自定义转换中引用 tableview 单元格吗?

【问题讨论】:

    标签: objective-c uitableview cocoa-touch ios8 custom-transition


    【解决方案1】:

    简短的回答是否定的。正如您所说,只有在过渡完成后您才能使用这些东西。

    在您使用 GCD 的第二个代码示例中,这只会让事情变得更糟,因为它所做的只是推迟执行实际转换 - 这仍然意味着所有元素都是 nil。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-17
      • 1970-01-01
      • 1970-01-01
      • 2018-08-02
      • 2019-10-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多