軟件設(shè)計(jì)中有設(shè)計(jì)模式,在UI設(shè)計(jì)方面也有設(shè)計(jì)模式。由于表視圖的應(yīng)用在iOS中極其廣泛,本節(jié)向大家介紹表視圖中兩個(gè)UI設(shè)計(jì)模式:分頁模式和下拉刷新(Pull-to-Refresh)模式。這兩種模式已經(jīng)成為移動(dòng)平臺(tái)開發(fā)的標(biāo)準(zhǔn)。
成都創(chuàng)新互聯(lián)一直秉承“誠(chéng)信做人,踏實(shí)做事”的原則,不欺瞞客戶,是我們最起碼的底線! 以服務(wù)為基礎(chǔ),以質(zhì)量求生存,以技術(shù)求發(fā)展,成交一個(gè)客戶多一個(gè)朋友!為您提供網(wǎng)站制作、成都網(wǎng)站建設(shè)、成都網(wǎng)頁設(shè)計(jì)、微信小程序、成都網(wǎng)站開發(fā)、成都網(wǎng)站制作、成都軟件開發(fā)、重慶APP軟件開發(fā)是成都本地專業(yè)的網(wǎng)站建設(shè)和網(wǎng)站設(shè)計(jì)公司,等你一起來見證!分頁模式
分頁模式規(guī)范了移動(dòng)平臺(tái)進(jìn)行大量數(shù)據(jù)請(qǐng)求的處理方式 。
下拉刷新模式
下拉刷新(Pull-to-Refresh)是重新刷新表視圖或列表,重新加載數(shù)據(jù),這種模式廣泛用于移動(dòng)平臺(tái)。下拉刷新與分頁相反,當(dāng)翻動(dòng)屏幕到 頂部時(shí)候,再往下拉屏幕程序就開始重新請(qǐng)求數(shù)據(jù),表視圖表頭部分會(huì)出現(xiàn)等待指示器,請(qǐng)求結(jié)束表視圖表頭消失。下拉刷新模式帶有箭頭動(dòng)畫效果。
在很多開源社區(qū)中都有下拉刷新的實(shí)現(xiàn)代碼,Github上的git://github.com/leah/PullToRefresh.git有一個(gè)下拉刷新的例子,可以供大家參考。
iOS6下拉刷新控件
隨著下拉刷新模式影響力的越來越大,蘋果不得不考慮把它列入自己的規(guī)范之中,并在iOS 6 API中推出了下拉刷新控件。iOS 6中的下拉刷新,有點(diǎn)像是在拉一個(gè)“膠皮糖”,當(dāng)這個(gè)“膠皮糖”拉斷的時(shí)候之后會(huì)出現(xiàn)等待指示器。
iOS 6 之后UITableViewController添加了一個(gè)refreshControl屬性,這個(gè)屬性保持了一個(gè)UIRefreshControl的對(duì) 象指針。UIRefreshControl就是iOS 6為表視圖實(shí)現(xiàn)下拉刷新而提供的。UIRefreshControl類目前只能應(yīng)用于表視圖畫面,其它視圖不能使用。該屬性與 UITableViewController配合使用,關(guān)于下拉刷新布局等問題可以不必考慮,UITableViewController會(huì)將其自動(dòng)放置 于表視圖中。
我們通過一個(gè)例子來了解一下UIRefreshControl控件的使用。參考創(chuàng)建簡(jiǎn)單表視圖的案例,創(chuàng)建工程“RefreshControlSample”,然后修改代碼ViewController.h。
- #import
Logs屬性存放了NDate日期列表,用于在表視圖中顯示需要的數(shù)據(jù),ViewController.m中的初始化代碼如下:
- - (void
- //初始化變量和時(shí)間
- //初始化UIRefreshControl
viewDidLoad方法中初始化了一條當(dāng)前時(shí)間的模擬數(shù)據(jù)。UIRefreshControl的構(gòu)造方式是init。 attributedTitle屬性用于下拉控件顯示標(biāo)題文本。UIRefreshControl的addTarget: forControlEvents:方法能夠通過編程方式為UIControlEventValueChanged事件添加處理方法。 refreshTableView是UIControlEventValueChanged事件的處理方法,refreshTableView方法的代碼 如下:
- -(void
- if
- //添加新的模擬數(shù)據(jù)
- //模擬請(qǐng)求完成之后,回調(diào)方法callBackMethod
UIRefreshControl的refreshing屬性可以判斷控件是否還處于刷新中的狀態(tài),刷新中狀態(tài)的圖標(biāo)是我們常見的等待指示器,在這 個(gè)階段要將顯示標(biāo)題文本設(shè)置為“加載中…”。接下來應(yīng)該是進(jìn)行網(wǎng)絡(luò)請(qǐng)求或者數(shù)據(jù)庫查詢的操作。這些操作完成后應(yīng)用會(huì)回調(diào)callBackMethod方 法,本案例涉及云端的技術(shù),我們使用[self performSelector:@selector(callBackMethod:) withObject:date afterDelay:3]語句延時(shí)調(diào)用callBackMethod方法來模擬實(shí)現(xiàn)。
回調(diào)方法callBackMethod:的代碼如下。
- -(void
在請(qǐng)求完成的時(shí)候endRefreshing方法可以停止下拉刷新控件,回到初始狀態(tài),顯示的標(biāo)題文本為“下拉刷新”。[self.tableView reloadData]語句是重新加載表視圖。
實(shí)現(xiàn)UITableViewDataSource的兩個(gè)方法代碼如下:
- - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
- return
- return
- static
- if
- "yyyy-MM-dd HH:mm:ss zzz"
- return
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。