MovieViewController.Swift

import UIKit

class MovieViewController: UIViewController,UITableViewDelegate,UITableViewDataSource {


? ? //表格屬性

? ? vartable:UITableView=UITableView(frame:CGRect(x:0,y:0,width:scrWidth,height:scrHeight), style:UITableViewStyle.grouped)


? ? //給表格加載數(shù)據(jù)的字典

? ? vartableData = ["武俠":[

? ? ? ? ["name":"《精武英雄》","author":"李連杰"],["name":"《猛龍過江》","author":"李小龍"],["name":"《我是誰》","author":"成龍"]

? ? ? ? ? ? ? ? ? ? ],


?? ? ? ? ? ? ? ? ? ? "愛情":[

? ? ? ? ? ? ? ? ? ? ? ? ["name":"《小時代》","author":"楊冪"],["name":"《后來的我們》","author":"周冬雨"]

? ? ? ? ? ? ? ? ? ? ],


?? ? ? ? ? ? ? ? ? ? "科幻":[

? ? ? ? ? ? ? ? ? ? ? ? ["name":"《阿凡達》","author":"周游"],["name":"《機械公敵》","author":"威爾史密斯"],["name":"《鋼鐵俠》","author":"小羅伯特唐尼"],["name":"《精武英雄》","author":"李連杰"]

? ? ? ? ? ? ? ? ? ? ],

? ? ? ? ? ? ? ? ? ? ]


? ? overridefuncviewDidLoad() {

? ? ? ? super.viewDidLoad()

? ? ? ? // Do any additional setup after loading the view.


? ? ? ? //設(shè)置表格的數(shù)據(jù)和代理

? ? ? ? self.table.dataSource=self;

? ? ? ? self.table.delegate=self;

? ? ? ? self.view.addSubview(self.table)



? ? }



? ? // MARK: - -------------UITableViewDataSource--------------

? ? //返回分區(qū)書

? ? funcnumberOfSections(in tableView:UITableView) ->Int{

? ? ? ? returnself.tableData.count

? ? }


? ? //根據(jù)分區(qū)下標(biāo)返回每個分區(qū)中有多少行

? ? functableView(_tableView:UITableView, numberOfRowsInSection section:Int) ->Int{

? ? ? ? //得到表格字典的key的數(shù)值

? ? ? ? letkeyArr =self.tableData.keys

? ? ? ? //通過分區(qū)下標(biāo)朽褪,得到該分區(qū)對應(yīng)的key

? ? ? ? letkey = keyArr[keyArr.index(keyArr.startIndex, offsetBy:section)]

? ? ? ? //通過key得到對應(yīng)的value,這個value是個數(shù)組

? ? ? ? letsectionArr =self.tableData[key]

? ? ? ? return(sectionArr?.count)!


? ? }

? ? //單元格賦值方法

? ? functableView(_tableView:UITableView, cellForRowAt indexPath:IndexPath) ->UITableViewCell{

? ? ? ? letidentifier ="cell"

? ? ? ? varcell = tableView.dequeueReusableCell(withIdentifier: identifier)

? ? ? ? ifcell ==nil{

? ? ? ? ? ? cell =UITableViewCell(style: .value1, reuseIdentifier: identifier)

? ? ? ? }


? ? ? ? //得到所有key的數(shù)組

? ? ? ? letkeyArr =self.tableData.keys

? ? ? ? //通過分區(qū)下標(biāo)得到分區(qū)對應(yīng)的key

? ? ? ? letkey = keyArr[keyArr.index(keyArr.startIndex, offsetBy: indexPath.section)]

? ? ? ? //根據(jù)key得到分區(qū)的數(shù)組

? ? ? ? letsectionArr =self.tableData[key]

? ? ? ? //根據(jù)行的下標(biāo)得到該行對應(yīng)的字典

? ? ? ? letrowDic = sectionArr![indexPath.row]

? ? ? ? //給cell賦值

? ? ? ? cell?.textLabel?.text= rowDic["name"]

? ? ? ? cell?.detailTextLabel?.text= rowDic["author"]





? ? ? ? returncell!

? ? }

? ? //設(shè)置分區(qū)標(biāo)題

? ? functableView(_tableView:UITableView, titleForHeaderInSection section:Int) ->String? {

? ? ? ? //獲取所有key的數(shù)組

? ? ? ? letkeyArr =self.tableData.keys

? ? ? ? //根據(jù)分區(qū)下標(biāo)獲取對應(yīng)的key

? ? ? ? letkey = keyArr[keyArr.index(keyArr.startIndex, offsetBy: section)]


? ? ? ? returnkey

? ? }

? ? // MARK: --------------------------UITableViewDelegate---------------------------

? ? //點擊單元格觸發(fā)

? ? functableView(_tableView:UITableView, didSelectRowAt indexPath:IndexPath) {

? ? ? ? //字典所有key數(shù)組

? ? ? ? letkeyArr =self.tableData.keys

? ? ? ? //選中的單元格所在的分區(qū)的key

? ? ? ? letkey = keyArr[keyArr.index(keyArr.startIndex, offsetBy: indexPath.section)]

? ? ? ? //得到分區(qū)對應(yīng)的數(shù)組

? ? ? ? letsectionArr =self.tableData[key]

? ? ? ? //得到該選中的單元格對應(yīng)的字典

? ? ? ? letmovieDic = sectionArr![indexPath.row]

? ? ? ? //將名字和演員拼接成字符串

? ? ? ? letmessage ="\(movieDic["name"]!)-\(movieDic["author"]!)"

? ? ? ? //定義alertController對象

? ? ? ? letalertVC =UIAlertController(title:nil, message: message, preferredStyle: .alert)

? ? ? ? //添加控制按鈕

? ? ? ? alertVC.addAction(UIAlertAction(title:"確定", style: .default, handler:nil))

? ? ? ? //彈出提示視圖

? ? ? ? self.present(alertVC, animated:true, completion:nil)

? ? }


? ? //設(shè)置所有單元格都可以編輯

? ? functableView(_tableView:UITableView, canEditRowAt indexPath:IndexPath) ->Bool{

? ? ? ? return true

? ? }


? ? //編輯觸發(fā)的回調(diào)

? ? functableView(_tableView:UITableView, commit editingStyle:UITableViewCellEditingStyle, forRowAt indexPath:IndexPath) {

? ? ? ? //如果是刪除操作

? ? ? ? ifeditingStyle == .delete{

? ? ? ? ? ? //得到分區(qū)對應(yīng)的key

? ? ? ? ? ? letkey =self.tableData.keys[self.tableData.keys.index(self.tableData.keys.startIndex, offsetBy: indexPath.section)]

? ? ? ? ? ? varsectionArr =self.tableData[key]

? ? ? ? ? ? sectionArr?.remove(at: indexPath.row)


? ? ? ? ? ? self.tableData.updateValue(sectionArr!, forKey: key)

? ? ? ? ? ? self.table.reloadData()

? ? ? ? }

? ? }

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市赌厅,隨后出現(xiàn)的幾起案子籍铁,更是在濱河造成了極大的恐慌狐树,老刑警劉巖涮母,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件挟冠,死亡現(xiàn)場離奇詭異鹏漆,居然都是意外死亡巩梢,警方通過查閱死者的電腦和手機创泄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來括蝠,“玉大人鞠抑,你說我怎么就攤上這事〖删” “怎么了搁拙?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長慨蓝。 經(jīng)常有香客問我感混,道長,這世上最難降的妖魔是什么礼烈? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任弧满,我火速辦了婚禮,結(jié)果婚禮上此熬,老公的妹妹穿的比我還像新娘庭呜。我一直安慰自己,他們只是感情好犀忱,可當(dāng)我...
    茶點故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布募谎。 她就那樣靜靜地躺著,像睡著了一般阴汇。 火紅的嫁衣襯著肌膚如雪数冬。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天搀庶,我揣著相機與錄音拐纱,去河邊找鬼。 笑死哥倔,一個胖子當(dāng)著我的面吹牛秸架,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播咆蒿,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼东抹,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了沃测?” 一聲冷哼從身側(cè)響起缭黔,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蒂破,沒想到半個月后试浙,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡寞蚌,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年田巴,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片挟秤。...
    茶點故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡壹哺,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出艘刚,到底是詐尸還是另有隱情管宵,我是刑警寧澤,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布攀甚,位于F島的核電站箩朴,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏秋度。R本人自食惡果不足惜炸庞,卻給世界環(huán)境...
    茶點故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望荚斯。 院中可真熱鬧埠居,春花似錦、人聲如沸事期。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽兽泣。三九已至绎橘,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間唠倦,已是汗流浹背称鳞。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留牵敷,地道東北人胡岔。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像枷餐,于是被迫代替她去往敵國和親靶瘸。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,490評論 2 348

推薦閱讀更多精彩內(nèi)容