TableView基本操作

添加數(shù)據(jù)源, 由三個(gè)函數(shù)來(lái)回答數(shù)據(jù)綁定的請(qǐng)求numberOfSectionsInTableView,numberOfRowsInSection 和 cellForRowAtIndexPath.

用numberOfSectionsInTableView方法來(lái)返回table中有幾個(gè)組.

- (NSInteger)numberOfSectionsInTableView:(UITableView*)tableView

{

return 1;

}

用numberOfRowsInSection方法來(lái)返回每個(gè)組里有幾行

- (NSInteger)tableView:(UITableView *)tableView

numberOfRowsInSection:(NSInteger)section

{

return nRecords;

}

最后用cellForRowAtIndexPath來(lái)得到一個(gè)包含每一行顯示信息的UITableViewCell對(duì)象.

UITableViewCell類支持文本和圖像,編輯和刪除確認(rèn)等功能.

這些信息會(huì)保存在表隊(duì)列里,用來(lái)至此翻頁(yè)等功能,但是內(nèi)存很低的時(shí)候會(huì)自動(dòng)釋放,然后再需要的時(shí)候重新創(chuàng)建.

- (UITableViewCell *)tableView:(UITableView *)tableView

cellForRowAtIndexPath:(NSIndexPath*)indexPath

{

NSString *CellIdentifier = [[ NSString alloc ] initWithFormat:

@"Cell %d", [ indexPathindexAtPosition: 1 ] ];

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier: CellIdentifier];

if (cell == nil) {

cell = [ [ [ UITableViewCell alloc ]

initWithFrame: CGRectZero reuseIdentifier: CellIdentifier ]

autorelease

];

}

cell.text =CellIdentifier;

returncell;

}

NSIndexPath用來(lái)保存哪一組的哪一行.

[ indexPath indexAtPosition: 0 ]哪一組

[ indexPath indexAtPosition: 1 ]哪一行

7.2 UITableViewCell包含圖像,文本等.

NSString *CellIdentifier = [ [ NSString alloc ] initWithString:

@"Frank" ];

UITableViewCell *cell = [ [ [ UITableViewCell alloc ]

initWithFrame: CGRectZero

reuseIdentifier:CellIdentifier

] autorelease

];

然后你可以為每一個(gè)cell設(shè)置不同的風(fēng)格

(1) 顯示文本: cell.text = @"Frank's Table Cell";

(2) 對(duì)齊: cell.textAlignment = UITextAlignmentLeft;

UITextAlignmentLeft

默認(rèn)是左對(duì)齊

UITextAlignmentRight

右對(duì)齊

UITextAlignmentCenter

中對(duì)齊

(3) 字體和尺寸:

#import

UIFont *myFont = [ UIFont fontWithName: @"Arial" size: 18.0];

cell.font = myFont;

//系統(tǒng)字體

UIFont *mySystemFont = [ UIFont systemFontOfSize: 12.0 ];

UIFont *myBoldSystemFont = [ UIFont boldSystemFontOfSize: 12.0

];

UIFont *myItalicSystemFont = [ UIFont italicSystemFontOfSize: 12.0

];

(4) 顏色

#import

//文本顏色

cell.textColor = [ UIColor redColor ];

//當(dāng)前選擇項(xiàng)的顏色

cell.selectedTextColor = [ UIColor blueColor ];

(5) 圖像

//從你應(yīng)用程序目錄下的文件創(chuàng)建一個(gè)image

cell.image = [ UIImage imageNamed: @"cell.png" ];

//當(dāng)前選中項(xiàng)的圖形

cell.selectedImage = [ UIImage imageNamed: @"selected_cell.png"

];

可以修改table保準(zhǔn)行高來(lái)適應(yīng)你的圖形高度

- (id)init

{

self = [ super init ];

if (self != nil) {

self.tableView.rowHeight =65;

}

returnself;

}

你也可以為每一個(gè)cell定義不同的高度

- (CGFloat)tableView:(UITableView *)tableViewheightForRowAtIndexPath:(NSIndexPath*)indexPath

{

if ([ indexPathindexAtPosition: 1 ] == 0)

return 65.0;

else

return 40.0;

}

(6)選中項(xiàng)的風(fēng)格

cell.selectionStyle = UITableViewCellSelectionStyleBlue;

UITableViewCellSelectionStyleBlue默認(rèn)選中項(xiàng)是藍(lán)色

UITableViewCellSelectionStyleGray灰色

UITableViewCellSelectionStyleNone沒(méi)有變化

(7)標(biāo)簽 (labels)

在偏移量100x0處創(chuàng)建一個(gè)尺寸50x50 label:

UILabel *label = [ [ UILabel alloc ] initWithFrame:

CGRectMake(100.0, 0.0, 50.0, 50.0) ];

label.text = @"Label Text";

label.textAlignment = UITextAlignmentLeft;

label.textColor = [ UIColor redColor ];

label.font = [ UIFont fontWithName: @"Arial" size: 10.0 ];

標(biāo)簽label可以設(shè)置文本陰影,甚至可以定義陰影的偏移:

label.shadowColor = [ UIColor grayColor ];

label.shadowOffset = CGSizeMake(0, -1);

高亮是的顏色:

label.highlightedTextColor = [ UIColor blackColor ];

標(biāo)簽的背景色:

label.backgroundColor = [ UIColor blueColor ];

把標(biāo)簽加到cell里

[ cell addSubview: label ];

(8) 附件

cell.accessoryType =UITableViewCellAccessoryDisclosureIndicator;

Style

Description

UITableViewCellAccessoryNone

沒(méi)有附件

UITableViewCellAccessoryDisclosureIndicator

黑色向右的箭頭

UITableViewCellAccessoryDetailDisclosureButton

藍(lán)色附件按鈕

UITableViewCellAccessoryCheckmark

復(fù)選框,支持選擇

7.3 實(shí)現(xiàn)多選

- (void)tableView:(UITableView *)tableView

didSelectRowAtIndexPath:(NSIndexPath*)indexPath

{

NSLog(@"Selected section %d,cell %d",

[ indexPath indexAtPosition: 0 ], [ indexPathindexAtPosition: 1 ]);

//獲的當(dāng)前選擇項(xiàng)

UITableViewCell *cell = [self.tableView cellForRowAtIndexPath: indexPath];

//顯示復(fù)選框

if (cell.accessoryType ==UITableViewCellAccessoryNone)

cell.accessoryType =UITableViewCellAccessoryCheckmark;

else

cell.accessoryType =UITableViewCellAccessoryNone;

}

7.4 編輯和刪除

在允許用戶刪除和編輯的時(shí)候,每一個(gè)cell左邊會(huì)顯示一個(gè)紅色刪除圖標(biāo)

[ self.tableView setEditing:YES animated:YES ];

關(guān)閉編輯的時(shí)候,table頂部會(huì)顯示一個(gè)Edit導(dǎo)航條

[ self.tableView setEditing: NO animated: YES ];

在編輯過(guò)程中,如果用戶要?jiǎng)h除該項(xiàng),會(huì)彈出一個(gè)刪除確認(rèn)框.

確認(rèn)后調(diào)UITableViewDataSource類的commitEditingStyle方法來(lái)通知你的應(yīng)用程序,

然后你可以從你的底層數(shù)據(jù)源里刪除該項(xiàng),并通知table view刪除該行.

- (void)tableView:(UITableView *)tableView

commitEditingStyle:(UITableViewCellEditingStyle) editingStyle

forRowAtIndexPath:(NSIndexPath *) indexPath

{

if (editingStyle ==UITableViewCellEditingStyleDelete)

{

NSLog(@"Deleted section %d, cell %d", [indexPath indexAtPosition: 0 ], [ indexPath indexAtPosition: 1]);

NSMutableArray *array = [ [ NSMutableArray alloc] init ];

[ array addObject: indexPath ];

[ self.tableView deleteRowsAtIndexPaths:array

withRowAnimation: UITableViewRowAnimationFade

];

}

}

通過(guò)傳遞一個(gè)數(shù)組給deleteRowsAtIndexPaths方法, 可以刪除一行或多行.

withRowAnimation至此下列預(yù)定義的刪除動(dòng)畫(huà)

Animation

Description

UITableViewRowAnimationFade

Cell fades out

UITableViewRowAnimationRight

Cell slides out from right

UITableViewRowAnimationLeft

Cell slides out from left

UITableViewRowAnimationTop

Cell slides out to top of adjacent cell

UITableViewRowAnimationBottom

Cell slides out to bottom of adjacent cell

7.5 重新加載表

當(dāng)你的數(shù)據(jù)變了的時(shí)候,你可以重新加載整個(gè)表

[ self.tableView reloadData ];

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末型诚,一起剝皮案震驚了整個(gè)濱河市走趋,隨后出現(xiàn)的幾起案子潜必,更是在濱河造成了極大的恐慌坤按,老刑警劉巖棒呛,帶你破解...
    沈念sama閱讀 206,723評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件街图,死亡現(xiàn)場(chǎng)離奇詭異蕉朵,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)罗珍,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)脚粟,“玉大人靡砌,你說(shuō)我怎么就攤上這事∩郝ィ” “怎么了通殃?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,998評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我画舌,道長(zhǎng)堕担,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,323評(píng)論 1 279
  • 正文 為了忘掉前任曲聂,我火速辦了婚禮霹购,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘朋腋。我一直安慰自己齐疙,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,355評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布旭咽。 她就那樣靜靜地躺著贞奋,像睡著了一般。 火紅的嫁衣襯著肌膚如雪穷绵。 梳的紋絲不亂的頭發(fā)上轿塔,一...
    開(kāi)封第一講書(shū)人閱讀 49,079評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音仲墨,去河邊找鬼勾缭。 笑死,一個(gè)胖子當(dāng)著我的面吹牛目养,可吹牛的內(nèi)容都是我干的俩由。 我是一名探鬼主播,決...
    沈念sama閱讀 38,389評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼癌蚁,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼采驻!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起匈勋,我...
    開(kāi)封第一講書(shū)人閱讀 37,019評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤礼旅,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后洽洁,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體痘系,經(jīng)...
    沈念sama閱讀 43,519評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,971評(píng)論 2 325
  • 正文 我和宋清朗相戀三年饿自,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了汰翠。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,100評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡昭雌,死狀恐怖复唤,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情烛卧,我是刑警寧澤佛纫,帶...
    沈念sama閱讀 33,738評(píng)論 4 324
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響呈宇,放射性物質(zhì)發(fā)生泄漏好爬。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,293評(píng)論 3 307
  • 文/蒙蒙 一甥啄、第九天 我趴在偏房一處隱蔽的房頂上張望存炮。 院中可真熱鬧,春花似錦蜈漓、人聲如沸穆桂。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,289評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)享完。三九已至,卻和暖如春衣形,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背姿鸿。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,517評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工谆吴, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人苛预。 一個(gè)月前我還...
    沈念sama閱讀 45,547評(píng)論 2 354
  • 正文 我出身青樓句狼,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親热某。 傳聞我的和親對(duì)象是個(gè)殘疾皇子腻菇,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,834評(píng)論 2 345

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

  • 概述在iOS開(kāi)發(fā)中UITableView可以說(shuō)是使用最廣泛的控件,我們平時(shí)使用的軟件中到處都可以看到它的影子昔馋,類似...
    liudhkk閱讀 8,987評(píng)論 3 38
  • *7月8日上午 N:Block :跟一個(gè)函數(shù)塊差不多筹吐,會(huì)對(duì)里面所有的內(nèi)容的引用計(jì)數(shù)+1,想要解決就用__block...
    炙冰閱讀 2,473評(píng)論 1 14
  • 1秘遏、禁止手機(jī)睡眠[UIApplication sharedApplication].idleTimerDisabl...
    DingGa閱讀 1,116評(píng)論 1 6
  • { 24丘薛、Sqlite數(shù)據(jù)庫(kù) 1、存儲(chǔ)大數(shù)據(jù)量邦危,增刪改查洋侨,常見(jiàn)管理系統(tǒng):Oracle、MSSQLServer倦蚪、DB...
    CYC666閱讀 929評(píng)論 0 1
  • 我呢希坚,有點(diǎn)內(nèi)向,慢熱又感性陵且。做事認(rèn)真但就是在考試時(shí)粗心裁僧。遇事不冷靜。 為此,我吃過(guò)好多虧锅知。 今年暑假去學(xué)車(chē)播急,是真的...
    蒔語(yǔ)閱讀 321評(píng)論 0 1