2010-12-11 76 views
2

我有UITableViewController的tableView更改其框架位置時從UITabBarController,UINavigationController內提出的問題。從常規選項卡顯示時,框架正常。但是,如果我從「更多」部分移動並顯示UITableViewController,則tableview將向下移動與導航欄相同的高度(我不希望它)。當我測試適當和非適當位置之間的運行時幀座標時,它顯示爲相同(0.0,0.0,320.0,411.0)。 只有在我在一個導航控制器中顯示tableView之後纔會發生此問題,然後將它移動並顯示在另一個導航中,如「更多」VC選項卡或「更多」VC選項卡VC當從不同的UINavigationControllers('更多')顯示UITableview更改高度

發生了什麼在這裏,我該如何解決這個問題?

最後一張圖片是應用程序啓動時的樣子,應該是這樣的,他的表格視圖正好位於導航欄下方。然而在前兩個,你可以看到tableview已經被移動了。

提前致謝!

alt text alt text

alt text

+0

當您單擊更多導航按鈕或更多是其他選項卡時會生成此問題。這些圖像是相同的頁面(兩個顯示完成按鈕在左側,但一個havig更多導航按鈕)。 – Ishu 2010-12-15 05:10:55

+0

也許會添加一些您正在使用的代碼。從顯示新視圖的操作開始,然後爲該表視圖創建viewDidLoad或viewWill/DidAppear委託。 – WrightsCS 2010-12-15 06:02:17

+0

雖然這是事,我沒有手動設置任何自定義。我用普通的UITableViewController和UIViewController來試試這個。他們都這樣做。所有的ViewController都可以。這可能是iOS 4.2.1的一個錯誤嗎? – 2010-12-15 06:05:23

回答

3

我能解決這個問題。事實證明,當您將UINavigationController中的UITableView控制器移動到moreNavigationController時,會將44像素添加到contentInset和scrollIndicatorInsets的「頂部」變量。我不知道爲什麼會發生這種情況,或者爲什麼這些44像素在tableView離開'moreNavigationController'的時候沒有被移除,但這是答案。我從viewWillAppear中調用這兩行。

self.tableView.contentInset = UIEdgeInsetsMake(44.0, 0.0, 0.0, 0.0); 
self.tableView.scrollIndicatorInsets = UIEdgeInsetsMake(44.0, 0.0, 0.0, 0.0); 
0

復位自動調整大小表視圖筆尖文件的屬性。

你可以在裏面找到它: 工具>屬性檢查器

+0

如何?你是指尺寸檢查員嗎? – 2010-12-15 05:53:02

0

首先使用廈門國際銀行採取一個UITableView的視圖。然後添加導航欄並調整tableview的大小。你會得到你真正想要的。 alt text

如果您仍然發現任何問題,請讓我知道。

0

如果您可以顯示您的代碼或截取您的設置,它會容易得多。根據我的經驗,創建UITableViewController實例並將它們連接到Interface Builder將會擴展以填充屏幕。

你如何將它連接到「更多」選項卡?如果它在兩個選項卡中,並且您正在做任何動態動作,請檢查您的UITableViewController類viewDidLoad方法。除非是單獨的實例,否則不應該添加/刪除/重新添加表。

一些地方檢查:

  1. 的NSLog您tableHeaderView高度和位置
  2. 的NSLog您tableFooterView高度和位置
  3. 創建backgroundView並將其分配到的tableView的backgroundView屬性來看看它的真實尺寸是和在哪裏顯示
  4. 檢查UITableViewController的視圖起始位置在哪裏。

希望我能幫到更多。想看看你的設置/代碼。

1

UITableViewController具有此行爲,它總是嘗試最適合屏幕大小。 UITableViewController非常適用於全屏桌面視圖,但我建議不要使用UITableViewController,而是通過實現數據源和委託來自己實現tableViewControler。有些確實將resizeSubViews設置爲NO並解決了他們的問題,但我真的建議您自己重新創建控制器,這並不是那麼多的工作。

+0

我認爲這可能會解決這個問題,我會嘗試一下! – 2010-12-17 16:28:55

相關問題