2010-04-02 45 views
3

我有一个UITableViewController查看我分配/初始化与CGRectZero的框架一个UITableView:位置上进行CGRectZero框架一个UITableView的中间一个UIView

self.tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped]; 

我想在中间添加视图tableView(带有UIActivityIndi​​catorView和UILabel的加载视图),但我不知道如何定位它,因为我不知道tableView框架。

x = (self.tableview.frame.size.width - loadingView.frame.size.width)/2.0; 
y = (self.tableview.frame.size.height - loadingView.frame.size.height)/2.0; 
[loadingView setCenter:CGPointMake(x, y)]; 

我没有初始化我的tableView与CGRectZero框,使其可以在屏幕上可用的(它没有),整个地方,但我认为它的框架将更新或东西。

任何想法?谢谢 !

回答

2

我设法以帧为单位进行估计。我不mentionned我的tableView是的导航栏和的TabBar之间,所以这里是这种情况下,代码:

CGFloat x = self.navigationController.view.frame.size.width; 
CGFloat y = self.navigationController.view.frame.size.height - 
      self.tabBarController.tabBar.frame.size.height; 

self.tableView = [[UITableViewController alloc] initWithFrame:CGRectMake(0.0, 0.0, x, y)]; 

及以上的loadingView的positionning就像一个魅力发布的代码!

我打开吨更好的解决方案,当然

0

如果您的视图控制器是一个UITableViewController的,则表视图的框架是一样的UIViewController的框架。

为什么不把它放在UIViewController视图的中心?

假设自己是的UITableViewController:

loadingView.center = self.view.center; 
1

你可以给你的LoadingView它是出现在视图的引用。然后,当它是将要被示出,它可以检查它是代表居中和匹配视图和自身添加作为TableView中的上海华的子视图的视图的帧:

- (void)show 
{ 
    self.center = targetView.center; 
    [[targetView superview] addSubview:self]; 
} 

另一种选择是使LoadingView使用KVO来监视UITableView的框架并相应地调整它自己的框架。

相关问题