##利用緩存池優化列表顯示緩存
下面是代碼部分優化
/** * 每一行顯示怎麼樣的內容(call) * */ - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ // 1.經過一個標示去緩存池中尋找可循環利用的cell // dequeue:出列(查找) UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"A"]; // 2.若是沒有可循環利用的cell,就建立 if (cell == nil) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"A"]; } // 3.給cell設置新的數據 YSHero *hero = self.heros[indexPath.row]; cell.textLabel.text = hero.name; cell.detailTextLabel.text = hero.intro; cell.imageView.image = [UIImage imageNamed:hero.icon]; // 設置cell指示器類型 // cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; // 設置cell指示器view cell.accessoryView = [[UISwitch alloc] init]; // 設置背景色(不用設置View寬高) UIView *bgView = [[UIView alloc] init]; bgView.backgroundColor = [UIColor whiteColor]; cell.backgroundView = bgView; // 設置選中的單選框背景 UIView *selectView = [[UIView alloc] init]; selectView.backgroundColor = [UIColor brownColor]; cell.selectedBackgroundView = selectView; NSLog(@"%d-%@-%p",indexPath.row,hero.name,cell); return cell; }
實際內存地址使用狀況以下。上下移動列表,其內存地址老是保持着11個不一樣的值,且互相切換。 code