一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

tableview中cell的設(shè)置

 昵稱20917807 2014-12-11

  7.1 創(chuàng)建表

(1) 創(chuàng)建一個(gè)UITableViewController的子類

@interface MyTableViewController : UITableViewController {

}

-(id)init; 

-(void)dealloc;


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

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

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView

{

  return 1;

}

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

- (NSInteger)tableView:(UITableView *)tableView

 numberOfRowsInSection:(NSInteger)section 

{

  return nRecords;

}

最后用cellForRowAtIndexPath來得到一個(gè)包含每一行顯示信息的UITableViewCell對(duì)象. UITableViewCell類支持文本和圖像,編輯和刪除確認(rèn)等功能. 這些信息會(huì)保存在表隊(duì)列里,用來至此翻頁等功能,但是內(nèi)存很低的時(shí)候會(huì)自動(dòng)釋放,然后再需要的時(shí)候重新創(chuàng)建.

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

    cellForRowAtIndexPath:(NSIndexPath *)indexPath 

{

    NSString *CellIdentifier = [ [ NSString alloc ] initWithFormat:

         @"Cell %d", [ indexPath indexAtPosition: 1 ] ];

    

    UITableViewCell *cell = [ tableView dequeueReusableCellWithIdentifier: CellIdentifier ]; 

    

    if (cell == nil) {

        cell = [ [ [ UITableViewCell alloc ]

            initWithFrame: CGRectZero reuseIdentifier: CellIdentifier ]

        autorelease 

        ]; 

    }

    

    cell.text = CellIdentifier;

    return cell; 

}

NSIndexPath用來保存哪一組的哪一行.

[ 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 <UIKit/UIFont.h>

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 <UIKit/UIColor.h>

//文本顏色

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)行高來適應(yīng)你的圖形高度

- (id)init 

{

    self = [ super init ];

    if (self != nil) {

        self.tableView.rowHeight = 65; 

    }

    return self; 

}


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

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

{

    if ([ indexPath indexAtPosition: 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 沒有變化

 

(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

沒有附件

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 ], [ indexPath indexAtPosition: 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 ];

在編輯過程中,如果用戶要?jiǎng)h除該項(xiàng),會(huì)彈出一個(gè)刪除確認(rèn)框. 確認(rèn)后調(diào)UITableViewDataSource類的commitEditingStyle方法來通知你的應(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 

        ];

     }

}

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

 

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

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 ];

  7.1 創(chuàng)建表

(1) 創(chuàng)建一個(gè)UITableViewController的子類

@interface MyTableViewController : UITableViewController {

}

-(id)init; 

-(void)dealloc;


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

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

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView

{

  return 1;

}

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

- (NSInteger)tableView:(UITableView *)tableView

 numberOfRowsInSection:(NSInteger)section 

{

  return nRecords;

}

最后用cellForRowAtIndexPath來得到一個(gè)包含每一行顯示信息的UITableViewCell對(duì)象. UITableViewCell類支持文本和圖像,編輯和刪除確認(rèn)等功能. 這些信息會(huì)保存在表隊(duì)列里,用來至此翻頁等功能,但是內(nèi)存很低的時(shí)候會(huì)自動(dòng)釋放,然后再需要的時(shí)候重新創(chuàng)建.

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

    cellForRowAtIndexPath:(NSIndexPath *)indexPath 

{

    NSString *CellIdentifier = [ [ NSString alloc ] initWithFormat:

         @"Cell %d", [ indexPath indexAtPosition: 1 ] ];

    

    UITableViewCell *cell = [ tableView dequeueReusableCellWithIdentifier: CellIdentifier ]; 

    

    if (cell == nil) {

        cell = [ [ [ UITableViewCell alloc ]

            initWithFrame: CGRectZero reuseIdentifier: CellIdentifier ]

        autorelease 

        ]; 

    }

    

    cell.text = CellIdentifier;

    return cell; 

}

NSIndexPath用來保存哪一組的哪一行.

[ 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 <UIKit/UIFont.h>

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 <UIKit/UIColor.h>

//文本顏色

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)行高來適應(yīng)你的圖形高度

- (id)init 

{

    self = [ super init ];

    if (self != nil) {

        self.tableView.rowHeight = 65; 

    }

    return self; 

}


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

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

{

    if ([ indexPath indexAtPosition: 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 沒有變化

 

(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

沒有附件

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 ], [ indexPath indexAtPosition: 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 ];

在編輯過程中,如果用戶要?jiǎng)h除該項(xiàng),會(huì)彈出一個(gè)刪除確認(rèn)框. 確認(rèn)后調(diào)UITableViewDataSource類的commitEditingStyle方法來通知你的應(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 

        ];

     }

}

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

 

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

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 ];


    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    欧美夫妻性生活一区二区| 国产精品激情在线观看| 国产欧美日韩精品一区二区| 亚洲国产性感美女视频| 五月婷婷亚洲综合一区| 亚洲天堂精品在线视频| 国产黄色高清内射熟女视频| 日本本亚洲三级在线播放| 99视频精品免费视频| av在线免费播放一区二区| 欧美成人免费一级特黄| 日本久久精品在线观看| 最好看的人妻中文字幕| 精品人妻av区波多野结依| 中字幕一区二区三区久久蜜桃| 空之色水之色在线播放| 中文字日产幕码三区国产| 九九九热视频最新在线| 一区二区三区精品人妻| 欧美日韩中黄片免费看| 国产剧情欧美日韩中文在线| 日本 一区二区 在线| 欧美日韩中国性生活视频| 中文人妻精品一区二区三区四区| 成人国产激情在线视频| 日韩人妻欧美一区二区久久| 黄片在线免费观看全集| 午夜福利大片亚洲一区| 日本久久中文字幕免费| 国内精品伊人久久久av高清| 五月婷婷六月丁香狠狠| 香蕉尹人视频在线精品| 老熟妇乱视频一区二区| 欧美性欧美一区二区三区| 少妇丰满a一区二区三区| 暴力三级a特黄在线观看| 欧美一区日韩一区日韩一区| 国产亚洲欧美另类久久久| 午夜激情视频一区二区| 欧美在线视频一区观看| 国产成人精品视频一二区|