----Make by -LJW 轉載請註明出處--- 緩存
1 #pragma make 數據源方法 2 //一共有多少組數據 3 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 4 { 5 return 1; 6 } 7 //第section組有多少row(一組有多少行) 8 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 9 { 10 return self.heros.count; 11 } 12 13 #pragma make TableView性能優化 14 //****************************************************************************** 15 16 // cellForRowAtIndexPath 顯示的內容(顯示的主要內容) 17 /** 18 * 每當有一個cell進入視野範圍內,就會調用 19 */ 20 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 21 { 22 /* 23 //顯示名字和詳情的方法 24 //(用戶每次拖拽頁面都會從新建立新的TableView,多以會有性能問題) 25 //爲了解決這個問題,會把多出的一個TableView放到緩存區,用戶拖拽的時候用到在拿出來,避免建立多餘的,TableView循環使用 26 UITableViewCell *cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:nil]; 27 */ 28 // static修飾局部變量:能夠保 證局部變量只分配一次存儲空間(只初始化一次) 29 static NSString *ID = @"hero"; 30 // 1.經過一個標識去緩存池中尋找可循環利用的cell 31 // dequeue : 出列 (查找) 32 UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID]; 33 34 // 2.若是沒有可循環利用的cell 35 if (cell == nil){ 36 cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:ID]; 37 // NSLog(@"------緩存池找不到cell--%d", indexPath.row); 38 } 39 // 3.給cell設置新的數據 40 //取出模型 41 JWhero *hero = self.heros[indexPath.row]; 42 //設置名字 43 cell.textLabel.text = hero.name; 44 //添加第二列詳情 45 cell.detailTextLabel.text = hero.intro; 46 //設置頭像 47 cell.imageView.image = [UIImage imageNamed:hero.icon]; 48 49 //添加cell右邊指示器的樣式 50 cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; 51 //添加cell右邊指示器按鈕 52 // cell.accessoryView = [[UISwitch alloc]init]; 53 54 //設置cell默認背景圖片 或者 背景顏色(背景view不用設置尺寸,優先級backgroundView > backgroundColor),因此設置默認背景顏色最好用backgroundView 55 // UIView *bgView = [[UIView alloc]init]; 56 UIImageView *bgView = [[UIImageView alloc] init]; 57 bgView.image = [UIImage imageNamed:@"buttongreen"]; 58 // bgView.backgroundColor = [UIColor redColor]; 59 cell.backgroundView = bgView; 60 61 //設置cell點擊狀態背景顏色 62 UIView *selectedbgView = [[UIView alloc]init]; 63 selectedbgView.backgroundColor = [UIColor yellowColor]; 64 cell.selectedBackgroundView = selectedbgView; 65 66 return cell; 67 }