[發(fā)明專利]一種TableView優(yōu)化方法在審
| 申請?zhí)枺?/td> | 201710484430.9 | 申請日: | 2017-06-23 |
| 公開(公告)號: | CN107329795A | 公開(公告)日: | 2017-11-07 |
| 發(fā)明(設計)人: | 邱揚 | 申請(專利權)人: | 北京酷我科技有限公司 |
| 主分類號: | G06F9/45 | 分類號: | G06F9/45 |
| 代理公司: | 北京德和衡律師事務所11405 | 代理人: | 姚克楓 |
| 地址: | 100080 北京市海淀區(qū)農大*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 tableview 優(yōu)化 方法 | ||
技術領域
本發(fā)明涉及UITableView(簡稱TableView)的性能優(yōu)化技術領域,具體說是一種TableView優(yōu)化方法。
背景技術
UITableView是app開發(fā)中常用到的控件,功能很強大,多用于數(shù)據(jù)的顯示。UITableView繼承自UIScrollView,可以表現(xiàn)為Plain和Grouped兩種風格。
UITableView有兩個Delegate分別為:dataSource和delegate。
dataSource是UITableViewDataSource類型,主要為UITableView提供顯示用的數(shù)據(jù)(UITableViewCell),指定UITableViewCell支持的編輯操作類型(insert,delete和reordering),并根據(jù)用戶的操作進行相應的數(shù)據(jù)更新操作,如果數(shù)據(jù)沒有根據(jù)操作進行正確的更新,可能會導致顯示異常,甚至crush(撞車,沖突)。
delegate是UITableViewDelegate類型,主要提供一些可選的方法,用來控制TableView的選擇、指定section的頭和尾的顯示以及協(xié)助完成cell的刪除和排序等功能。
提到UITableView,就必須的說一說NSIndexPath。UITableView聲明了一個NSIndexPath的類別,主要用來標識當前cell的在TableView中的位置,該類別有section和row兩個屬性,前者標識當前cell處于第幾個section中,后者代表在該section中的第幾行。
UITableView只能有一列數(shù)據(jù)(cell),且只支持縱向滑動,當創(chuàng)建好的TableView第一次顯示的時候,我們需要調用其reloadData方法,強制刷新一次,從而使TableView的數(shù)據(jù)更新到最新狀態(tài)。
UITableViewController是系統(tǒng)提供的一個便利類,主要是為了方便我們使用UITableView,該類生成的時候就將自身設置成了其包含的TableView的dataSource和delegate,并創(chuàng)建了很多代理函數(shù)的框架,為我們大大的節(jié)省了時間,我們可以通過其TableView屬性獲取該Controller內部維護的TableView對象。默認情況下使用UITableViewController創(chuàng)建的TableView是充滿全屏的,如果需要用到TableView是不充滿全屏的話,我們應該使用UIViewController自己創(chuàng)建和維護TableView。
UITableViewController提供一個初始化函數(shù)initWithStyle:,根據(jù)需要我們可以創(chuàng)建Plain或者Grouped類型的TableView,當我們使用其從UIViewController繼承來的init初始化函數(shù)的時候,默認將會我們創(chuàng)建一個Plain類型的TableView。
UITableView中顯示的每一個單元都是一個UITableViewCell對象,其初始化函數(shù)initWithStyle:reuseIdentifier:比較特別,跟我們平時看到的UIView的初始化函數(shù)不同。這個主要是為了效率考慮,因為在TableView快速滑動的滑動的過程中,頻繁的alloc對象是比較費時的,于是引入了cell的重用機制,這個也是我們在dataSource中要重點注意的地方,用好重用機制會讓我們的TableView滑動起來更加流暢。
我們可以通過cell的selectionStyle屬性指定cell選中時的顯示風格,以及通過accessoryType來指定cell右邊的顯示的內容,或者直接指定accessoryView來定制右邊顯示的view。
系統(tǒng)提供的UITableView包含了四種風格的布局,可以想象系統(tǒng)提供的只是最常用的幾種類型,當系統(tǒng)提供的風格不符合我們需要的時候,我們就需要對cell進行定制了,有以下兩種定制方式可選:
1、直接向cell的contentView上面添加subView
2、從UITableViewCell派生一個類,可以更深度的定制一個cell,可以指定cell在進入edit模式的時候如何相應等等。最簡單的實現(xiàn)方式就是將所有要繪制的內容放到一個定制的subView中,并且重載該subView的drawRect方法直接把要顯示的內容繪制出來(這樣可以避免subView過多導致的性能瓶頸),最后再將該subView添加到cell派生類中的contentView中即可。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京酷我科技有限公司,未經(jīng)北京酷我科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業(yè)授權和技術合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710484430.9/2.html,轉載請聲明來源鉆瓜專利網(wǎng)。





