2011-07-04 54 views
1

我在我的應用程序中有一些tableviews,我已經設置了自動修復面具靈活的寬度和高度。然而,當我打開一個viewcontroller我使用tableView時,我注意到我沒有設置自動調整屏蔽,但是tableview看起來在iPad上正確調整大小。這是否意味着不需要在tableview上設置自動調整掩碼?默認情況下,UITableView自動調整掩碼?

回答

1

更確切地說,UIViewController框架喜歡根據它們呈現的上下文來明確地調整其視圖的大小。例如,在iPhone上,UINavigationController和UITabBarController顯式調整其viewControllers的視圖以填充所有可用的屏幕空間。在iPad上,UISplitViewController明確調整其主視圖控制器和詳細視圖控制器的視圖,以使其適合橫向模式下的尺寸。這些容器視圖控制器執行的顯式調整大小在技術上並非自動調整大小,因此這些視圖控制器忽略視圖的autoresizingMask。

視圖的autoresizingMask回答了一個具體問題:如果該視圖的界限改變了,該視圖應該如何處理?當UIViewController的視圖被容器視圖控制器顯式調整大小時,這不被視爲自動調整大小,因爲它不是由於超級視圖邊界的更改而發生的。當然,如果顯式調整大小的視圖具有子視圖,那麼這些子視圖將按照其autoresizingMasks(如果superview將autoresizesSubviews設置爲YES)指定的顯式調整其超級視圖的副作用來獲得自動調整大小。

0

是的。當你在.xib中添加tableview時,它的默認屬性是靈活的寬度和高度。

+0

不,這是在loadView方法中的代碼中完成的。 – LuckyLuke

+0

然後yup其默認屬性。可能會發生在新的SDK中。 –