在使用tableview 前 記得設置 Delegate 和DataSource
UITableView = _TabView;
-(void)viewDidLoad{
[super viewDidLoad];
_TabView = [[UITableView alloc]initWithFrame:self.view.frame style:UITableViewStylePlain];
_TabView.delegate = self;
_TabView.dataSource = self;
//設置cell 的 分行樣式 默認為UITableViewCellSeparatorStyleSingleLine
[_TabView setSeparatorStyle:UITableViewCellSeparatorStyleSingleLine];
//設置cell 行 分割線 的顏色
_TabView.separatorColor = [UIColor redColor];
//設置行高
_TabView.rowHeight = 120;
//設置行 Header 的高度
_TabView.sectionHeaderHeight = 100;
//設置行 Fotter 的高度
_TabView.sectionFooterHeight = 100;
//跳轉到指定的 分區 和 行
[_TabView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:1 inSection:1] atScrollPosition:UITableViewScrollPositionTop animated:YES];
[self.view addSubview:_TabView];
}
//設置表格的分區數
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
return 10;
}
//每個section底部標題高度(實現這個代理方法后前面 sectionHeaderHeight 設定的高度無效)
-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
return 20;
}
//每個section頭部標題高度(實現這個代理方法后前面 sectionFooterHeight 設定的高度無效)
-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{
return 20;
}
//設定每個分區section 頭部的標題
-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{
return? @"header";
//return [[dictonary allKeys] objectAtIndex:section];字典 賦 給頭部標題
}
//設定每隔分區的底部標題 footer
-(NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section{
return? @"footer";
}
//用 自定制 自定義的 section頭部視圖-Header
-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
return nil;
}
//用以定制自定義的section底部視圖-Footer
-(UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section{
UIImageView *imageView=[[UIImageView alloc]initWithFrame:CGRectMake(0, 0,320, 20)];
imageView.image=[UIImage imageNamed:@"1000.png"];
return imageView;
}
//設置每個分區內的行數
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
if (section == 0) {
return 10;
}else if(section == 1){
return 5;
}
return 0;
}
//創建cell 及 給cell 賦值{
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString * cellid = @"cellid";
UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:cellid];
if (!cell) {
cell? =[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellid];
//設定選中cell時的cell的背影顏色
//選中時藍色效果
cell.selectionStyle=UITableViewCellSelectionStyleBlue;
//cell.selectionStyle=UITableViewCellSelectionStyleNone; //選中時沒有顏色效果
//cell.selectionStyle=UITableViewCellSelectionStyleGray;? //選中時灰色效果
//自定義選中cell時的背景顏色
//UIView *selectedView =[[UIViewalloc]initWithFrame:cell.contentView.frame];
//selectedView.backgroundColor = [UIColor orangeColor];
//cell.selectedBackgroundView = selectedView;
//[selectedView release];
//行不能被選中
// cell.selectionStyle=UITableViewCellAccessoryNone;
//這是設置沒選中之前的背景顏色
cell.contentView.backgroundColor = [UIColor clearColor];
//未選cell時的圖片
cell.imageView.image=[UIImage imageNamed:@"1001.jpg"];
//選中cell后的圖片
cell.imageView.highlightedImage=[UIImage imageNamed:@"1002.jpg"];
}
//每一行上添加圖片
//每一行上添加主標題
cell.textLabel.text = @"你好";
//每一行上添加子標題
cell.detailTextLabel.text = @"敦敦";
//從字典中獲取數據
//cell.textLabel.text=[[self.myDic objectForKey:[[self.myDicallKeys]objectAtIndex:indexPath.section]]objectAtIndex:indexPath.row];
//從Model中獲取數據
Model * model = arr[indexPath.row];(用到網絡的時候要注明跳轉時給下一個界面賦地址)
//每一行上添加按鈕
return cell;
}
//改變行的高度(實現主個代理方法后 rowHeight 設定的高度無效)
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
return 100;
}
//======================cell的點擊跳轉事件
//選中Cell響應事件
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath{
//選中后的反顯顏色即刻消失
[tableView deselectRowAtIndexPath:indexPath animated:YES];
//得到當前選中的cell
UITableViewCell *cell=[tableView cellForRowAtIndexPath:indexPath];
NSLog(@"cell=%@",cell);
//點擊不同的cell 不同的響應事件
//? ? self.navigationController.navigationBar.hidden = NO;
//? ? if (indexPath.section == 0)
//? ? {
//? ? ? ? if (indexPath.row == 0)
//? ? ? ? {
//? ? ? ? ? ? NSLog(@"點擊了1-1");
//? ? ? ? }
//? ? ? ? else if (indexPath.row == 1)
//? ? ? ? {
//? ? ? ? ? ? NSLog(@"點擊了1-2");
//? ? ? ? }
//? ? ? ? else if (indexPath.row == 2)
//? ? ? ? {
//? ? ? ? ? ? NSLog(@"點擊了1-3");
//? ? ? ? }
//? ? }else if (indexPath.section == 1)
//? ? {
//? ? ? ? if (indexPath.row == 1){
//? ? ? ? ? ? NSLog(@"點擊了2-1");
//? ? ? ? }else if(indexPath.row == 2){
//? ? ? ? ? ? NSLog(@"點擊了2-2");
//? ? ? ? }
//? ? }
}
------------------冊通知時候
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(notificationUpdate:) name:@"data" object:nil];
調用業務處理類獲取數據
[[LoadData shareLoadData]getData];
//設置通知響應方法
- (void)notificationUpdate:(NSNotification *)notifi
{
arr = [notifi.object copy];
//刷新表格
[table reloadData];
}
--------------------------------
//=====================cell 左滑時的事件
//cell的左滑刪除事件
// 設置 cell 是否允許左滑
-(BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
return true;
}
//// 設置默認的左滑按鈕的title
//-(NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath {
//? ? return @"按鈕鈕鈕";
//}
//// 點擊左滑出現的按鈕時觸發
//-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
//? ? NSLog(@"點擊左滑出現的按鈕時觸發");
//}
//// 左滑結束時調用(只對默認的左滑按鈕有效,自定義按鈕時這個方法無效)
//-(void)tableView:(UITableView *)tableView didEndEditingRowAtIndexPath:(NSIndexPath *)indexPath {
//? ? NSLog(@"左滑結束");
//}
// 自定義左滑cell時的按鈕和觸發方法
- (NSArray *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath{
// 創建第一個按鈕和觸發事件
UITableViewRowAction *cellActionA = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:@"按鈕-1" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath){
// 在此寫點擊按鈕時的觸發事件
// ......
NSLog(@"點擊了 按鈕-1");
}];
// 定義按鈕的顏色
cellActionA.backgroundColor = [UIColor greenColor];
// 創建第二個按鈕和觸發事件
UITableViewRowAction *cellActionB = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:@"按鈕-2" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath){
// 在此寫點擊按鈕時的觸發事件
// ......
NSLog(@"點擊了 按鈕-2");
}];
// 注意這里返回的是一個按鈕組,即使只定義了一個按鈕也要返回一個組
return @[cellActionA, cellActionB];
}
//行縮進
//-(NSInteger)tableView:(UITableView *)tableView indentationLevelForRowAtIndexPath:(NSIndexPath *)indexPath{
//? ? NSUInteger row = [indexPath row];
//? ? return row;
//}