- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
Cell *cell = (ChannelViewTableViewCell *)[tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
NSString *channelName;
channelName= [NSString stringWithFormat:@"Enter Channel %ld Name", (long)indexPath.row+1];
indexPathRow= indexPath.row+1;
return cell;
}
答案 0 :(得分:1)
您可以使用
创建一个[UITableViewCell alloc] initWithStyle:<#(UITableViewCellStyle)#> reuseIdentifier:<#(nullable NSString *)#>]
但正如@MuraliMohan和@Larme所说,我们通过避免创建不必要的单元来提高性能。
它的完成方式很简单,假设您有100个单元格要显示。由于设备屏幕太小,所以你最多只能一次向用户显示15个单元格,而不会出列,你将生成100个单元格并显示15.当单元格关闭时,什么是dequeing屏幕操作系统将将它重新用于显示的下一个单元格,而不是100,而内存中只有16个单元格。
基本上,只是保持dequeing但是如果你想尝试在测试应用程序中生成大量单元格而不进行dequeing以查看性能如何降低;)
答案 1 :(得分:0)
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
TableViewCell *cell = (TableViewCell *)[tableView dequeueReusableCellWithIdentifier:@"TableViewCell" forIndexPath:indexPath];
cell.NumberLabel.text =[NSString stringWithFormat:@"Enter Channel %ld Name", (long)indexPath.row+1];
cell.Name.tag = indexPath.row;
NSString *dicKey = [NSString stringWithFormat:@"%ld", (long)indexPath.row];
if (self.cellTextFiledValues[dicKey])
cell.channelName.text = self.cellTextFiledValues[dicKey];
else
cell.channelName.text = @"";
cell.selectionStyle =NO;
return cell;
}
- (void)resetTableview{
self.cellTextFiledValues = [NSMutableDictionary dictionary];
[self.channelViewTableView reloadData];
}
- (void)textFieldDidEndEditing:(UITextField *)textField
{
totalChannelCount =[self.datacount.text intValue];
NSString *dicKey = [NSString stringWithFormat:@"%ld", (long)textField.tag];
[self.cellTextFiledValues setObject:textField.text forKey:dicKey];
[self.myTableview reloadData];
}