如何获得UITable的可见中心

时间:2012-03-01 22:00:16

标签: iphone objective-c

我有一个标准的UITable。当用户滚动行然后点击其中一个单元格时;他们将被转移到另一种观点。从单元格点击到新视图将有一些处理时间。我想在一个视图中显示一个UIActivityIndi​​cator,它覆盖了UITable的中心。我不确定如何获得UITable的可见中心。

我的代码:

myView.center = self.tableView.center;

将它放在UITable的中心,直到我开始进一步向下滚动。然后UIActivityIndi​​cator保持在顶部,因此看起来UITableView.center不代表“可见中心”。

关于如何实现这一目标的任何提示?

谢谢! 跳蚤

2 个答案:

答案 0 :(得分:1)

将活动指示器放在tableview的父级而不是tableview本身中,然后它不会使用表视图滚动

答案 1 :(得分:1)

有两种方法可以实现这一目标。

您可以将活动指示器视图添加到包含tableView的同一视图中,然后将它们设置为相同的中心:

UIView* superview = [tableView superview];
yourActivityIndicator.center = tableView.center;
[superview addSubview:yourActivityIndicator];

或者您决定将监视器视图添加到tableView,但是必须计算此视图的中心,这取决于指标视图的大小。

CGSize tSize = tableView.frame.size;
CGSize aSize  = yourActivityIndicator.frame.size;
yourActivityIndicator.center = CGRectMake(
    (tSize.width-aSize.width)*0.5,
    (tSize.height-aSize.height)*0.5,
    aSize.width,
    aSize.height);
[tableView addSubview:yourActivityIndicator];