Swift小白的第九課-仿寫聯(lián)系人列表(3/3)

我們今天的任務(wù):優(yōu)化咱們通訊錄的功能:(高能預(yù)警:本節(jié)代碼會比較多,對于沒有編程基礎(chǔ)的同學(xué)閱讀可能會比較困難,我會對一些關(guān)鍵的代碼進(jìn)行解釋,其他必要的關(guān)于Swift語言的基礎(chǔ)內(nèi)容我可以先應(yīng)用,再熟悉以后再理解歸納)

優(yōu)化清單:

1. 通訊錄數(shù)據(jù)加載

2. 增加導(dǎo)航條

一、通訊錄數(shù)據(jù)加載:

為了讓咱們的通訊錄看起來比較真實(shí),我們?yōu)檫@10個通訊錄里的聯(lián)系人增加一個數(shù)據(jù)集,然后將數(shù)據(jù)集加到表格里,實(shí)際上這也是比較符合實(shí)際的項(xiàng)目例子的(實(shí)際項(xiàng)目中從后端接口獲取數(shù)據(jù),存放到數(shù)據(jù)集里,再加載到表格里)

1. 準(zhǔn)備數(shù)據(jù):在ContactViewController.swift類里定義變量contactListBook,并且初始化數(shù)據(jù),為了方便同學(xué)們,我將數(shù)據(jù)集提供在下方,可以直接拷貝。? 不過我還是建議自己親自寫一下,寫得過程中你會對字典,數(shù)組,健值對這些東西有更加深入的認(rèn)識。

let contactListBook:[[NSDictionary]] = [[

? ? ? ? ? ? ["name":"安琪拉","avatar":"default1","index":"A"],

? ? ? ? ? ? ["name":"阿偉","avatar":"default2","index":"A"],

? ? ? ? ? ? ["name":"骯臟的鐵騎","avatar":"default3","index":"A"]

? ? ? ? ],

? ? ? ? [

? ? ? ? ? ? ["name":"高力士","avatar":"default4","index":"G"],

? ? ? ? ? ? ["name":"高寒","avatar":"default5","index":"G"],

? ? ? ? ? ? ["name":"滾石樂隊(duì)","avatar":"default6","index":"G"]

? ? ? ? ],

? ? ? ? [

? ? ? ? ? ? ["name":"王子","avatar":"default7","index":"#"],

? ? ? ? ? ? ["name":"papi醬","avatar":"default8","index":"#"],

? ? ? ? ? ? ["name":"","avatar":"default9","index":"#"],

? ? ? ? ? ? ["name":"高長恭","avatar":"default10","index":"#"]

? ? ? ? ]]

數(shù)據(jù)集

2. 修改numerOfSections方法,將固定值改為通過變量獲取

動態(tài)獲取Section的值

3. 修改numberOfRowsInSection方法;

動態(tài)獲取某Section中的Row值

4. 加入和修改圖中標(biāo)注的代碼,此代碼用于動態(tài)的獲取Section的Title(獲取自我們每個Section的第一個(index為0)元素的key為index的字典)

動態(tài)生成Section的值

5. 修改或添加圖中代碼,將頭像和姓名通過動態(tài)獲取的方式設(shè)置給表格

注解:

1. contactListBook[indexPath.section][indexPath.row] : 從contactListBook的indexPath.section數(shù)組中獲取第indexPath.row個數(shù)組的數(shù)據(jù)。獲取的結(jié)果將是一個字典

2. 字典.value(forKey:"key") : 從字典中的指定key獲取對應(yīng)的value.

動態(tài)設(shè)置頭像和昵稱

二、增加導(dǎo)航條

為了更好的看到導(dǎo)航條的效果,建議將書記字典加大【作為小作業(yè)自己完成以下吧】,我這里就不講了,我就直接將數(shù)據(jù)集加大,增加了多條數(shù)據(jù)記錄

1.? 添加索引的字符串?dāng)?shù)據(jù)集

生層并返回?cái)?shù)據(jù)集合

2. 點(diǎn)擊索引時的定位

點(diǎn)擊索引定位滾動代碼

3. 好了,今天的課程結(jié)束:Command + R 看下效果

運(yùn)行效果
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 我們今天的任務(wù):使用TableView來創(chuàng)建聯(lián)系人的基礎(chǔ)列表項(xiàng)目 知識點(diǎn)目錄:1. TableView和Table...
    薰衣香閱讀 516評論 0 2
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對...
    cosWriter閱讀 11,667評論 1 32
  • { 24、Sqlite數(shù)據(jù)庫 1、存儲大數(shù)據(jù)量,增刪改查,常見管理系統(tǒng):Oracle、MSSQLServer、DB...
    CYC666閱讀 1,053評論 0 1
  • 趙勛趕到醫(yī)院的時候,女兒剛從手術(shù)室被推出來,臉上到處都是傷,都快看不出原本的模樣,他不敢相信,明明只是好好去上學(xué),...
    天黎琉璃閱讀 680評論 7 24
  • 重慶新思維學(xué)校鐵軍教練團(tuán)每日工作心得分享: 時間:7月7日 部門名稱:校區(qū) 崗位名稱:執(zhí)行總校長 分享人:黃蘋 今...
    詞媽閱讀 215評論 0 0

友情鏈接更多精彩內(nèi)容