2010-04-02 46 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的框架並相應地調整它自己的框架。

相關問題