2014-02-11 37 views
2

我是iOS開發新手。我目前正在開發一個應用程序,該應用程序具有從Web服務器返回的動態內容,映射到數據模型並顯示給用戶。要動態添加UIViews,還是創建一個UITableView? ios

到目前爲止,我已經創建的視圖消費模型,然後添加視圖作爲子視圖爲滾動視圖,計算y座標爲每個使他們增加了一個以另一個。

這種順序添加元素是「列表像」,並且可以是在表視圖表格單元。到目前爲止,我已經避免了這種方法,因爲我的一些視圖具有不同的高度,而且我已經讀過,當單元格具有動態行高時,表視圖上的性能顯着下降。

我是否風險增加性能順序子視圖爲滾動視圖? tableview是我所描述的更好的解決方案嗎?

+1

你從任何標準表視圖的行爲,如編輯模式下,連續動畫中受益,滾動時,狀態欄被竊聽的頂部,等等? – Justin

+0

除非你做的事情與表格視圖完全不同,否則我會使用UITableview並修改它以與你的設計一起工作。通過將UIViews添加到UIScrollView,您基本上重新發明了輪子。 – logixologist

+0

不,並點擊狀態欄將已經滾動我的滾動視圖與子視圖頂部。 @Justin –

回答

2

表視圖性能可能會隨着動態單元高度而降低的原因僅僅是因爲系統必須爲每個單元調用-tableView:heightForRowAtIndexPath:才能正確計算出滾動條。 (雖然這改變了iOS7與另外-tableView:estimatedHeightForRowAtIndexPath:方法。這些方法將使你非可見細胞提供了快速和骯髒的估計的高度。)

在任何情況下,這意味着滾動視圖將具有相同的性能問題:當你將它添加到滾動視圖時,你將不得不計算每個子視圖的高度。 (正如你已經提到過的那樣)。事實上,table view根據需求加載單元格的能力,會在庫存滾動視圖中爲你提供很多性能優勢。)

一般來說,您應該選擇使用最多感覺你。滾動視圖本質上是一個空白的畫布,您可以「自己滾動」。表格視圖爲您提供了很多「開箱即用」的功能。如果他們是名單,我會傾向於桌子的意見。

+0

這是有道理的。謝謝! –

1

你絕對應該使用一個表視圖。您可以使用heightForRowAtIndexPath來管理行高。

+0

我不反對,但你應該盡力支持你的建議與證據。 – Justin