IOS TableView

1、建立UITableView

DataTable = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320, 420)];


[DataTable setDelegate:self];


[DataTable setDataSource:self];


[self.view addSubview:DataTable];


[DataTable release];


2、UITableView 的一些常用方法介紹

//Section總數


- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView{


 return TitleData;


}


// Section Titles


//每個section顯示的標題


- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{


 return @"";


}


//指定有多少個分區(Section),默認爲1


- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {


 return 4;


}


//指定每個分區中有多少行,默認爲1


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{


}


//繪製Cell


-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {


static NSString *SimpleTableIdentifier = @"SimpleTableIdentifier";


    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:


                             SimpleTableIdentifier];


    if (cell == nil) {  


        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault


                                       reuseIdentifier: SimpleTableIdentifier] autorelease];


 }


 cell.imageView.image=image;//未選cell時的圖片


 cell.imageView.highlightedImage=highlightImage;//選中cell後的圖片


 cell.text=//.....


 return cell;


}


//行縮進


-(NSInteger)tableView:(UITableView *)tableView indentationLevelForRowAtIndexPath:(NSIndexPath *)indexPath{


 NSUInteger row = [indexPath row];


 return row;


}


//改變行的高度


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


    return 40;


}


//定位


[TopicsTable setContentOffset:CGPointMake(0, promiseNum * 44 + Chapter * 20)];


//返回當前所選cell


NSIndexPath *ip = [NSIndexPath indexPathForRow:row inSection:section];


[TopicsTable selectRowAtIndexPath:ip animated:YES scrollPosition:UITableViewScrollPositionNone];


[tableView setSeparatorStyle:UITableViewCellSelectionStyleNone];


//選中Cell響應事件


- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{


 [tableView deselectRowAtIndexPath:indexPath animated:YES];//選中後的反顯顏色即刻消失


}


//判斷選中的行(阻止選中第一行)


-(NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath


{


    NSUInteger row = [indexPath row];


    if (row == 0)


        return nil;


    return indexPath;


}


//划動cell是否出現del按鈕


- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {


}


//編輯狀態


- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle


forRowAtIndexPath:(NSIndexPath *)indexPath


{





[topicsTable setContentSize:CGSizeMake(0,controller.promiseNum * 44)];


//右側添加一個索引表


- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView{


}


//返回Section標題內容


- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{


}


//自定義划動時del按鈕內容


- (NSString *)tableView:(UITableView *)tableView


titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath


//跳到指的row or section


[tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] atScrollPosition:UITableViewScrollPositionBottom animated:NO];


3、在cell 中添加label 並多行顯示

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {


    static NSString *CellIdentifier = @"Cell";   


    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];


    if (cell == nil) {


        cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];


  UILabel *Datalabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 0, 320, 44)];


  [Datalabel setTag:100];


  Datalabel.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;


  [cell.contentView addSubview:Datalabel];


  [Datalabel release];


 } 


 UILabel *Datalabel = (UILabel *)[cell.contentView viewWithTag:100];


 [Datalabel setFont:[UIFont boldSystemFontOfSize:18]];


 Datalabel.text = [data.DataArray objectAtIndex:indexPath.row];


 cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;


    return cell;


}


//選中cell時的顏色


typedef enum {


    UITableViewCellSelectionStyleNone,


    UITableViewCellSelectionStyleBlue,


    UITableViewCellSelectionStyleGray


} UITableViewCellSelectionStyle 


//cell右邊按鈕格式


typedef enum {


    UITableViewCellAccessoryNone,                   // don't show any accessory view


    UITableViewCellAccessoryDisclosureIndicator,    // regular chevron. doesn't track


    UITableViewCellAccessoryDetailDisclosureButton, // blue button w/ chevron. tracks


    UITableViewCellAccessoryCheckmark               // checkmark. doesn't track


} UITableViewCellAccessoryType


//是否加換行線


typedef enum {


    UITableViewCellSeparatorStyleNone,


    UITableViewCellSeparatorStyleSingleLine


} UITableViewCellSeparatorStyle//改變換行線顏色


tableView.separatorColor = [UIColor blueColor];


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章