1

我們正在使用Monotouch開發特定於iPad的應用程序,但我懷疑同樣的問題適用於標準xcode/cocoa應用程序。如何在水平滾動時保持UITableView內容不被剪切?

我們的問題是,我們有UITableView必須滾動橫向和縱向(請不要建議我們更改設計,因爲這不是一個可行的選擇)。

通過將ContentSize設置爲合適的大小(我們將寬度設置爲所包含數據的寬度並將高度設置爲UITableView的高度),我們可以輕鬆地獲得UITableView的行爲方式。

但是,有一個令人不愉快的副作用:當水平滾動時,標題視圖和分隔每行的行被裁剪爲框的大小。有趣的是,內容仍然顯示出來,儘管我懷疑這是通過添加到單元格contentview中的子視圖顯示我們的數據的功能。

我已經嘗試過幾乎UITableView(裁剪,設置邊界,不透明度等)的設置的所有組合都無濟於事。

我們已經驗證過,如果我們將UITableView嵌入到UIScrollView中,它將正常工作,但由於無法重用單元格,我們不希望採用這種方法(這些表格可能會提供很多數據)和其他原因(蘋果說不)。

任何人都可以將我們指向正確的方向嗎?我不明白爲什麼這麼難。

回答

5

我不保證以下方法可行,但您可以嘗試以下方法。

要修復標題視圖,您需要將標題內容添加到一個虛擬containerView,然後使用這個虛擬containerView作爲表headerView。 現在,您應該設置containerView.clipsToBounds = FALSE並將標題內容的框架設置爲所需的寬度(如果您知道的話)。

此外,請確保標題內容將沒有自動調整掩碼設置。不管containerView發生了什麼,我們都不希望它改變它的框架。

這背後的想法是,tableView將調整您的containerView的框架,但會保持您的標題內容框架不變。並通過設置限幅爲FALSE,你應該把你的內容到containerView外溢出...瞧...希望

要解決的分隔線,我,我能想到的唯一的解決辦法就是讓你自己的分隔線在單元格中。你可以完全控制它的大小。

我的圓頂與標題視圖類似,我設法讓內容溢出。

+0

這是優秀的信息,非常感謝!它明確地解決了我的下一個問題(不是用內容滾動標題),並讓我找到了解決標題問題的解決方案。基本上,我將包含子視圖的標籤的背景設置爲不透明以避開另一個問題(背景顏色顯示爲透明),並且看起來這是導致裁剪的原因。分隔線仍然是一個問題,但這是我現在可以生活的東西。 –