你好,歡迎來到IOS教程網

 Ios教程網 >> IOS訊息 >> 關於IOS >> IOS 學習筆記(9)tableView基礎

IOS 學習筆記(9)tableView基礎

編輯:關於IOS

上一篇:http://www.2cto.com/kf/201301/185441.html
TableView是一個被分成不同部分的滾動視圖,每一部分又進一步被分成行,每行是一個UITableViewCell類的實例。可以把圖片,文本和其他任何東西嵌入tableView單元格,可以自定義他們的形狀,高度,分組或更多。這些分別在UITableViewDataSource和UITableViewDelegate的協議來定義。

#import<UIKit/UIKit.h> @interface TableViewController:UIViewController @property(monatomic,strong)UITableView *myTableView; @end @implementation TableViewController @synthesize myTableView; -(void)viewDidLoad{     [super viewDidLoad];     self.myTableView = [ [UITableView alloc]initWithFrame:self.view.bounds style:UITableViewStylePlain];     [self.view addSubview:self.myTableView]; } 這樣就創建了一個空白的TableView UITableViewStylePlain 創建一個沒有背景圖片的空白 Table View UITableViewStyleGrouped 創建一個有背景圖片和圓角組邊框的 Table View,類似於 Settings app。 怎麼添加數據呢? 遵循UITableViewDelegate協議: //設置tableviewCell高度 -(void)viewDidLoad{     [super viewDidLoad];     CGRect tableViewFrame = self.view.bounds;     self.myTableView = [[UITableView alloc]initWithFrame:tableViewFrame style:UITableViewStylePlain];     self.myTableView.delegate = self;     [self.view addSubview:self.myTableView]; } -(void)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{     CGFloat result = 20.0f;     if([tableView isEqual:self.myTableView]){         result = 40.0f;     }     return result; } TableView中的單元格的位置由其索引路徑展示出來,一個索引路徑是section和row索引的組合。section索引是從零開始的。 添加數據: 添加數據還需要遵循UITableViewDataSource協議 添加一下代碼 self.myTableView.dataSource = self; self.myTableView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; -(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{     NSInteger result = 0;     if([tableView isEqual:self.myTableView]){         result = 3;     }     return result; } -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{     NSInteger result = 0;     if([tableView isEqual:self.myTableView]){         switch(section){             case 0:{                  result = 3;                  break;              }              case 1:{                  result = 5;                  break;              }              case 2:{                  result = 8;                  break;              }         }    }    return result; } -(UITableViewCell *)tableView:(UITableView *)tableView cellForAtIndexPath:(NSIndexPath *)indexPath{     UITableViewCell *result = nil;     if([tableView isEqual:self.myTableView]){         static NSString *TableViewCellIdentifier = @"MyCells";         result = [tableView dequeueReusableCellWithIdentifier:TableViewCellIdentifier];         if(result == nil){             result = [ [UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:TableViewCellIdentifier];         }     result.textLabel.text = [NSString stringWithFormat:@"Section %ld,Cell %ld",(long)indexPath.section,(long)indexPath.row];     }     return result; } 接收和處理Table view事件 -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{     if([tableView isEqual:self.myTableView]){         NSLog(@"%@",[NSString stringWithFormat:@"Cell %ld in Section %ld is Selected",(long)indexPath.row,(long)indexPath.section]);     } } 在TableView中使用不同種類的附件 result.accessoryType = UITableViewCellAccessoryDetailDisclosureButton; 創建自定義tableView單元格附件 -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{     UITableViewCell *result = nil;     static NSString *myCellIdentifier = @"SimpleCell";     result = [tableView dequeueReusableCellWithIdentifier:myCellIdentifier];     if(result == nil){         result = [ [UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:myCellIdentifier];     }     result.textLabel.text = [NSString stringWithFormat:@"Section %ld,Cell %ld",(long)indexPath.section,(long)indexPath.row];     UIButton *button = [UIButton buttonWithType:UIButtonWithType:UIButtonTypeRoundedRect];     button.frame = CGRectMake(0.0f,0.0f,150.0f,25.0f);     ;     ;     result.accessoryView = button;     return result; } -(void)performExpand:(id)paramSender{     /*Take an at ion here*/     UITableViewCell *ownerCell = (UITableViewCell *)paramSender:superview;     if(ownerCell != nil){         NSIndexPath *ownerCellIndexPath = [self.myTableView indexPathForCell:ownerCell];         NSLog(@"Accessory in index path is tapped. indexPath = %@",ownerCellIndexPath);         if(ownerCellIndexPath.section == 0 && ownerCellIndexPath.row == 1){             /*This is the second row in the first section*/         }     } }
  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved