2011-04-11 153 views
1

我在這裏有點Iphone noob,所以請和我一起裸照。根據內容動態設置UIScrollView高度和UITableView高度

設置:我有一個標籤,uiimage和tableview(分組)嵌套在一個滾動視圖。標籤,uiimage和tableveiw由webservice填充。分組表格視圖中的最後一部分包含的文本永遠不會相同,並且可能長達5個字符到250+。此外,這個視圖是從一個基本的tableview中推出的(所以它有一個導航欄,如果這很重要的話)。

預計:根據從Web服務接收到的內容的長度,tableview的高度應該擴展。然後設置滾動視圖高度以適應桌面視圖的高度

問題:我不太清楚如何處理該問題。我真的只知道如何將高度更改爲固定值,這在許多情況下無法正常工作。

任何幫助表示讚賞。謝謝。

回答

1

單元格的寬度和高度被忽略;根據您從-tableView:heightForRowAtIndexPath:返回的值或(不及格)tableView.rowHeight重新確定電池單元的大小。如果單元格中的標籤的大小足夠大,可能會出現,就好像單元格足夠大,因爲標籤允許比單元格更大(並且在外部)。

一種方法是覆蓋-tableView:heightForRowAtIndexPath:以返回正確的高度。這實際上並不是UITableView的預期用途(它主要設計用於從內容列表動態生成的單個高度的許多行)。

另一種方法是設置tableView.tableFooterView = myCustomFooter。這可能是最簡單的方法。在執行任務之前正確調整它的大小(高度很重要;無論如何,表視圖將爲您設置寬度)。還要確保未設置自動識別標誌,或者當表視圖更改大小時(例如,在自動旋轉時),大小會隨機更改。

+0

我並不是想獲得細胞的高度。 UITABLEVIEW是一個GROUPED TABLE,需要根據第4部分中找到的內容的長度進行更高或更短的設置。所有的文本顯示在這第四部分沒有問題。當我根據靜態值更改UITABLEVIEW的高度時,我可以看到它。它被切斷,因爲它的初始高度設置爲450.然後,一旦設置了高度,我需要設置uiscrollview來補償uitableview的高度,以便我可以向下滾動並查看整個表格。 – Trevor 2011-04-12 03:36:00

+0

我不明白爲什麼我想在頁腳中設置一些東西。 「尺寸正確」是什麼意思?就像我說的,我不知道設置它的大小,因爲文本永遠不會是相同長度的字符。謝謝。 – Trevor 2011-04-12 03:37:42

+2

UITableView子類UIScrollView。你有沒有把UITableView放在UIScrollView中?如果只是將非表內容放入表視圖頁眉/頁腳中,則更有可能工作。或者,你可以使用tableView.contentSize(也許你需要強制佈局?我不知道;它是icky)... – 2011-04-12 04:30:39

0

我只關注可變高度元素,找出適合文本的高度。爲了弄清楚的是,當使用呈現一個片段這樣的字符串將採取高度:

CGFloat MY_TABLECELL_WIDTH = 320; 
CGFloat MY_MAX_HEIGHT = 10000; 
UIFont *MY_FONT = nil; // load the correct font here. 
CGSize maxSize = CGSizeMake(MY_TABLECELL_WIDTH,MY_MAX_HEIGHT); 
CGSize textSize = [serverString sizeWithFont:MY_FONT 
         constrainedToSize:maxSize 
         lineBreakMode:UILineBreakModeWordWrap]; 
+0

包含可變文本長度的單元格很適合。 tableview不夠高,不能顯示所有的內容,scrollview也不能容納滾動所需的高度。 – Trevor 2011-04-11 23:35:52

相關問題