當使用UITableViewController時,initWithStyle:方法根據文檔 - 「正確的尺寸」自動創建底層的UITableView。我的問題是,這些「正確的尺寸」似乎是320x460(iPhone的屏幕尺寸),但我推動這個TableView /控制器對進入一個UINavigationController,它本身包含在一個UIView中,它本身約爲高度的一半的屏幕。在小表中使用UITableViewController?
沒有框架或邊界的爭吵我可以想出正確重置表的大小,因此它是「太長」,這意味着有一個從屏幕底部推行的行的集合,而不是通過滾動可見或不可達。
所以我的問題歸結爲:什麼是正確的方式告訴UITableViewController調整其組件UITableView到指定的矩形?
謝謝!
更新我試着在這裏建議都沒有用的所有技術,但我沒有找到一個有趣的事情:如果我避開了UINavigationController的共(這我還不願意生產的事,但作爲實驗),並添加表視圖作爲我提到的封閉視圖的直接子視圖,給出的框架大小受到尊重。 非常時刻我將UINavigationController重新引入混合中,無論它是在表視圖之前還是之後添加爲子視圖,並且無論將表視圖之前還是之後的alloc/init添加爲子視圖,結果與之前一樣。
我開始懷疑UINavigationController的是沒有太大的玩家團隊...
更新2檢查幀大小後,屏幕上的表視圖是一個很好的的建議:原來,實際上導航控制器在加載和顯示之間調整了一段時間。我的解決方案,最好的辦法是緩存加載時給出的框架,並在tableView:cellForRowAtIndexPath:開始時更改它。你爲什麼要問?因爲這是我發現的那個地方,所以這就是爲什麼!
我不認爲這是一個解決方案,因爲它是明顯不當的,但對於其他人閱讀的好處,但它似乎工作。
這個問題達成一致,只是擴展的UIViewController,而是和你自己添加的tableView財產這樣
@property (nonatomic, retain) UITableView \t *tableView;
– Zennichimaro 2013-03-28 02:39:27