首先,讓我說,我對我的tableview性能感興趣,因爲每個單元格都會有相當多的數據。ios - 以編程方式或在IB中使用UITableViewCell?
我想知道的是,以編程方式構建我的tableView單元格還是使用接口生成器是一個更好的主意?他們每個人的利弊是什麼?
首先,讓我說,我對我的tableview性能感興趣,因爲每個單元格都會有相當多的數據。ios - 以編程方式或在IB中使用UITableViewCell?
我想知道的是,以編程方式構建我的tableView單元格還是使用接口生成器是一個更好的主意?他們每個人的利弊是什麼?
如果在UITableViewCell中有很多UILabel,性能可能會受到影響。
嘗試在IB中放置一個單元格,確保IB中的單元格標識符與您在代碼中使用的單元標識符匹配以排隊。
還要確保所有的標籤都設置爲不透明,因爲這有助於提高性能。
完成所有工作後,使用設備上的CoreAnimation工具進行分析並嘗試滾動表格。滾動時您將獲得FPS讀數 - 20 FPS有點波動但可以接受,遠低於此數值真的很不穩定。目標將是30FPS或更高。
如果性能不是很好,或者因爲您使用的背景而必須具有透明標籤,請考慮使用混合方法。在IB中設計單元格,但不是使用該XIB文件,而是使用代碼中的模板作爲模板。
什麼這將意味着是:
1)在細胞產生,在細胞的layoutSubviews閱讀的UITableViewCell的一個實例從廈門國際銀行爲靜態變量。 2)如果您的目標是iOS 3.2或更高版本,那麼對於XIB中的每個標籤,在與標籤相同的位置創建一個CATextLayer(CATextLayers將渲染得更快)。 3)如果您的目標是3.1或更高版本(除非您發瘋,否則不要低於3.0),在單元格的drawRect中,在模板標籤中指定的位置繪製單元格的所有文本。
一般來說,如果你正在重複使用單元格,檢查標籤是否不透明可能會足夠好(檢查以確保它們正如你期望的那樣出列)。
這聽起來像你會更好地建立你的細胞編程。 IB沒有太多的定製功能。以編程方式,您可以做更多。這些是關於每個的利弊。
在IB中設計和調整你的細胞肯定更容易。如果性能方面有任何差異,只要按照建議重複使用單元格,則不太可能引人注意。如果你重複使用單元格,你只會創建一小撮單元格。無論您是以編程方式創建單元還是從筆尖加載,都應該絕對做到這一點。
在代碼中比在IB中更容易完成一些事情,並且可能有一些事情必須在代碼中完成。當你遇到這些情況時你會知道它。即使如此,您仍然可以採用混合方法 - 從筆尖加載您的細胞,然後儘可能以編程方式修改它。
我喜歡這種方法。在IB中設計單元格非常容易,所以我將從此開始,然後根據需要以編程方式更改任何內容。謝謝! – 2011-03-28 03:09:16