我有一個UIScrollView用於模擬UITableView類似的交互,因爲行比UITableView提供的要複雜一些。每行有4個UILables UIImageView和UIButton。最終的結果是很多子視圖。使用大量子視圖優化UIScrollView
即使只有10行,滾動視圖在模擬器中看起來不錯,但在iPhone 4上的幀頻相當低。這確實是一個資源消耗問題。
有沒有辦法像雙緩衝一樣優化重繪滾動?
如果不是有另一種方式來獲得可定製的UITableview功能?
感謝
我有一個UIScrollView用於模擬UITableView類似的交互,因爲行比UITableView提供的要複雜一些。每行有4個UILables UIImageView和UIButton。最終的結果是很多子視圖。使用大量子視圖優化UIScrollView
即使只有10行,滾動視圖在模擬器中看起來不錯,但在iPhone 4上的幀頻相當低。這確實是一個資源消耗問題。
有沒有辦法像雙緩衝一樣優化重繪滾動?
如果不是有另一種方式來獲得可定製的UITableview功能?
感謝
是否每個視圖有4xUILabels,一個UIImageView和一個UIButton?
我會用自定義的UITableViewCell創建一個nib文件(你可以讓這些文件儘可能地複雜),然後你可以重用這些單元來幫助你的性能。
如果滾動性能出現問題,則不應使用多個子視圖創建Cell。使用平面視圖層次結構並使用drawString等方法自定義單元格的繪圖...另外,如果可能,請使您的單元格視圖/子視圖不透明。看看Apple的一些示例代碼,他們還使用自定義繪圖而不是Nib文件來避免使用子視圖。 – iamj4de 2010-08-04 09:06:09
我想你也許想創建一個UITableViewCell的自定義子類的UITableView的將處理所有的重畫你。在自定義UITableViewCell中,您可以根據需要添加儘可能多的子視圖。
看一看http://cocoawithlove.com/2009/04/easy-custom-uitableview-drawing.html。我們希望讓iPhone處理UITableView提供的有選擇性的繪圖/單元重用功能。
如果需要的話,您應該使用UITableView
。
但是,如果您的tableview單元格非常複雜,或者您希望在scrollview上啓用分頁,則應該查看Apple提供的PageContol
示例代碼。簡而言之,您會在scrollViewDidScroll:
中觀察移動並在可見之前加載新的「頁面」。在實踐中,這種方法對於任意長的頁面列表非常有效。
我會迴應以下答案中隱含的內容。如果你的視圖是「幾乎」一個表視圖(因爲它是一個垂直滾動列表),你幾乎可以肯定地做你需要的UITableView。您可以在表格視圖中擁有絕對任意的單元格,並且可以根據需要進行復雜操作。除非你真的需要,否則不要在這裏重新發明輪子。 – 2010-08-03 18:57:46