Xcode 滚动时,存储在数组中的表视图单元格索引丢失
过去几天我一直在研究表视图。但是,现在我被卡住了。实际上,我要做的是将单元格索引存储到可变数组中。我已经完成了这个部分。但是,当我滚动表视图时,存储在数组中的数据被刷新,我存储的索引从可变数组中删除。这是我到目前为止所做的代码 UITableViewCell*tableView:UITableView*tableView cellForRowAtIndexPath:NSIndexPath*indexPath { 如果tableView==table1{ 静态NSString*CellIdentifier=@CellXcode 滚动时,存储在数组中的表视图单元格索引丢失,xcode,tableview,Xcode,Tableview,过去几天我一直在研究表视图。但是,现在我被卡住了。实际上,我要做的是将单元格索引存储到可变数组中。我已经完成了这个部分。但是,当我滚动表视图时,存储在数组中的数据被刷新,我存储的索引从可变数组中删除。这是我到目前为止所做的代码 UITableViewCell*tableView:UITableView*tableView cellForRowAtIndexPath:NSIndexPath*indexPath { 如果tableView==table1{ 静态NSString*CellIdenti
NSString *CellId = [NSString stringWithFormat:@"Cell %d",indexPath.row];
CellIdentifier = CellId;
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
}
NSUserDefaults *defaults1 = [NSUserDefaults standardUserDefaults];
NSString *loadname1 = [defaults1 objectForKey:@"name1saved"];
NSUserDefaults *defaults2 = [NSUserDefaults standardUserDefaults];
NSString *loadname2 = [defaults2 objectForKey:@"name2saved"];
NSUserDefaults *defaults3 = [NSUserDefaults standardUserDefaults];
NSString *loadname3 = [defaults3 objectForKey:@"name3saved"];
NSUserDefaults *defaults4 = [NSUserDefaults standardUserDefaults];
NSString *loadname4 = [defaults4 objectForKey:@"name4saved"];
NSUserDefaults *defaults5 = [NSUserDefaults standardUserDefaults];
NSString *loadname5 = [defaults5 objectForKey:@"name5saved"];
NSUserDefaults *defaults6 = [NSUserDefaults standardUserDefaults];
NSString *loadname6 = [defaults6 objectForKey:@"name6saved"];
NSUserDefaults *defaults7 = [NSUserDefaults standardUserDefaults];
NSString *loadname7 = [defaults7 objectForKey:@"name7saved"];
NSUserDefaults *defaults8 = [NSUserDefaults standardUserDefaults];
NSString *loadname8 = [defaults8 objectForKey:@"name8saved"];
NSUserDefaults *defaults9 = [NSUserDefaults standardUserDefaults];
NSString *loadname9 = [defaults9 objectForKey:@"name9saved"];
NSUserDefaults *defaults10 = [NSUserDefaults standardUserDefaults];
NSString *loadname10 = [defaults10 objectForKey:@"name10saved"];
NSUserDefaults *defaults11 = [NSUserDefaults standardUserDefaults];
NSString *loadname11 = [defaults11 objectForKey:@"name11saved"];
NSUserDefaults *defaults12 = [NSUserDefaults standardUserDefaults];
NSString *loadname12 = [defaults12 objectForKey:@"name12saved"];
NSUserDefaults *defaults13 = [NSUserDefaults standardUserDefaults];
NSString *loadname13 = [defaults13 objectForKey:@"name13saved"];
NSUserDefaults *defaults14 = [NSUserDefaults standardUserDefaults];
NSString *loadname14 = [defaults14 objectForKey:@"name14saved"];
NSUserDefaults *defaults15 = [NSUserDefaults standardUserDefaults];
NSString *loadname15 = [defaults15 objectForKey:@"name15saved"];
NSUserDefaults *defaults16 = [NSUserDefaults standardUserDefaults];
NSString *loadname16 = [defaults16 objectForKey:@"name16saved"];
NSUserDefaults *defaults17 = [NSUserDefaults standardUserDefaults];
NSString *loadname17 = [defaults17 objectForKey:@"name17saved"];
NSUserDefaults *defaults18 = [NSUserDefaults standardUserDefaults];
NSString *loadname18 = [defaults18 objectForKey:@"name18saved"];
NSUserDefaults *defaults19 = [NSUserDefaults standardUserDefaults];
NSString *loadname19 = [defaults19 objectForKey:@"name19saved"];
NSUserDefaults *defaults20 = [NSUserDefaults standardUserDefaults];
NSString *loadname20 = [defaults20 objectForKey:@"name20saved"];
mTFArrayOfNames = [[NSMutableArray alloc]init ];
[mTFArrayOfNames insertObject:[NSString stringWithFormat:@"%@", loadname1] atIndex:[mTFArrayOfNames count]] ;
[mTFArrayOfNames insertObject:[NSString stringWithFormat:@"%@", loadname2] atIndex:[mTFArrayOfNames count]] ;
[mTFArrayOfNames insertObject:[NSString stringWithFormat:@"%@", loadname3] atIndex:[mTFArrayOfNames count]] ;
[mTFArrayOfNames insertObject:[NSString stringWithFormat:@"%@", loadname4] atIndex:[mTFArrayOfNames count]] ;
[mTFArrayOfNames insertObject:[NSString stringWithFormat:@"%@", loadname5] atIndex:[mTFArrayOfNames count]] ;
[mTFArrayOfNames insertObject:[NSString stringWithFormat:@"%@", loadname6] atIndex:[mTFArrayOfNames count]] ;
[mTFArrayOfNames insertObject:[NSString stringWithFormat:@"%@", loadname7] atIndex:[mTFArrayOfNames count]] ;
[mTFArrayOfNames insertObject:[NSString stringWithFormat:@"%@", loadname8] atIndex:[mTFArrayOfNames count]] ;
[mTFArrayOfNames insertObject:[NSString stringWithFormat:@"%@", loadname9] atIndex:[mTFArrayOfNames count]] ;
[mTFArrayOfNames insertObject:[NSString stringWithFormat:@"%@", loadname10] atIndex:[mTFArrayOfNames count]] ;
[mTFArrayOfNames insertObject:[NSString stringWithFormat:@"%@", loadname11] atIndex:[mTFArrayOfNames count]] ;
[mTFArrayOfNames insertObject:[NSString stringWithFormat:@"%@", loadname12] atIndex:[mTFArrayOfNames count]] ;
[mTFArrayOfNames insertObject:[NSString stringWithFormat:@"%@", loadname13] atIndex:[mTFArrayOfNames count]] ;
[mTFArrayOfNames insertObject:[NSString stringWithFormat:@"%@", loadname14] atIndex:[mTFArrayOfNames count]] ;
[mTFArrayOfNames insertObject:[NSString stringWithFormat:@"%@", loadname15] atIndex:[mTFArrayOfNames count]] ;
[mTFArrayOfNames insertObject:[NSString stringWithFormat:@"%@", loadname16] atIndex:[mTFArrayOfNames count]] ;
[mTFArrayOfNames insertObject:[NSString stringWithFormat:@"%@", loadname17] atIndex:[mTFArrayOfNames count]] ;
[mTFArrayOfNames insertObject:[NSString stringWithFormat:@"%@", loadname18] atIndex:[mTFArrayOfNames count]] ;
[mTFArrayOfNames insertObject:[NSString stringWithFormat:@"%@", loadname19] atIndex:[mTFArrayOfNames count]] ;
[mTFArrayOfNames insertObject:[NSString stringWithFormat:@"%@", loadname20] atIndex:[mTFArrayOfNames count]] ;
NSLog(@"%@", mTFArrayOfNames);
if (indexPath.row == 0) {
cell.textLabel.text = loadname1;
}
if (indexPath.row == 1) {
cell.textLabel.text = loadname2;
}
if (indexPath.row == 2) {
cell.textLabel.text = loadname3;
}
if (indexPath.row == 3) {
cell.textLabel.text = loadname4;
}
if (indexPath.row == 4) {
cell.textLabel.text = loadname5;
}
if (indexPath.row == 5) {
cell.textLabel.text = loadname6;
}
if (indexPath.row == 6) {
cell.textLabel.text = loadname7;
}
if (indexPath.row == 7) {
cell.textLabel.text = loadname8;
}
if (indexPath.row == 8) {
cell.textLabel.text = loadname9;
}
if (indexPath.row == 9) {
cell.textLabel.text = loadname10;
}
if (indexPath.row == 10) {
cell.textLabel.text = loadname11;
}
if (indexPath.row == 11) {
cell.textLabel.text = loadname12;
}
if (indexPath.row == 12) {
cell.textLabel.text = loadname13;
}
if (indexPath.row == 13) {
cell.textLabel.text = loadname14;
}
if (indexPath.row == 14) {
cell.textLabel.text = loadname15;
}
if (indexPath.row == 15) {
cell.textLabel.text = loadname16;
}
if (indexPath.row == 16) {
cell.textLabel.text = loadname17;
}
if (indexPath.row == 17) {
cell.textLabel.text = loadname18;
}
if (indexPath.row == 18) {
cell.textLabel.text = loadname19;
}
if (indexPath.row == 19) {
cell.textLabel.text = loadname20;
}
cell.textLabel.font = [UIFont fontWithName:@"Bauhaus 93" size:18];
cell.textLabel.textColor = [UIColor whiteColor];
cell.textLabel.backgroundColor = [UIColor grayColor];
[cell.textLabel setTextAlignment:UITextAlignmentCenter];
return cell;
}
}
voidtableView:UITableView*tableView didSelectRowatineXpath:NSIndexPath*indexPath
{
如果tableView==table1{
UITableViewCell*selectedCell=[tableView cellForRowAtIndexPath:indexPath]
if ([selectedCell accessoryType] == UITableViewCellAccessoryNone) {
[selectedCell setAccessoryType:UITableViewCellAccessoryCheckmark];
[selectedIndexes addObject:[NSNumber numberWithInt:indexPath.row]];
selectedCell.backgroundColor =[UIColor blueColor];
} else {
[selectedCell setAccessoryType:UITableViewCellAccessoryNone];
[selectedIndexes removeObject:[NSNumber numberWithInt:indexPath.row]];
selectedCell.backgroundColor =[UIColor clearColor];
}
[tableView deselectRowAtIndexPath:indexPath animated:NO];
names = [[NSMutableArray alloc] init];
for (int i = 0; i < mTFArrayOfNames.count; i++)
{
if ([self.table1 cellForRowAtIndexPath:[NSIndexPath indexPathForRow:i inSection:0]].accessoryType == UITableViewCellAccessoryCheckmark)
{
[names addObject:[mTFArrayOfNames objectAtIndex:i]];
}
NSLog(@"name1 is %@", names);
}
}
}
请帮帮我。提前感谢….刷新的是名称可变数组吗?
如果是这样,那是因为每次选择单元格时都要初始化它。因此,最终会删除以前设置的值
在委托外部初始化名称数组。可能是在viewDidLoad中,或者在初始化TableView的任何地方
在didSelect中,将新对象添加到名称数组中
此外,在cellForRowAtIndexPath中创建所有loadnameX并添加到新初始化的mTFArrayOfNames中的逻辑也很糟糕
从cellForRowAtIndexPath中删除整个逻辑,并将其添加到viewDidLoad或初始化TableView的任何位置
好的,我将使用didSelect方法之外的names数组。它将存储我选择的索引。但如果用户再次单击该单元格并从中删除复选标记,该怎么办。存储在名称数组中的用户选择的索引是否会删除?????我问我的朋友这个问题。他叫我带一本词典,而不要带字典。这本字典合适吗。如果用户再次单击以取消选择单元格,请从数组中移除对象。2.NSUserDefaults用于在退出和重新启动后要在AppEvent中保留数据的情况。我假设数据是这样的。如果数据仅适用于应用程序的当前生命周期,请避免使用NSUserDefaults。使用NSYOK Roshit。。。。它起了点作用。当我选择第一个索引时,它被存储在names数组中;当我选择第二个索引时,存储在数组中的索引仍然保留在那里,新索引也被存储。例如,wt首先单击索引0,索引0存储到名称数组中,并显示2012-12-06 12:15:42.533拆分[979:f803]名称1是A,当我单击索引1时,它显示2012-12-06 12:16:06.145拆分[979:f803]名称1是A、A、B