gpt4 book ai didi

ios - 表格滚动时自动取消选中行

转载 作者:行者123 更新时间:2023-11-29 13:13:59 25 4
gpt4 key购买 nike

当我滚动 UITableView 时,我的 tableview 单元格会自动取消选中。但是当我按下完成按钮时,它会给我选定的行我不明白为什么会这样。

enter image description here

我的 Tableview 代码如下:

- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
idArray = [[NSMutableArray alloc]init];

NSLog(@"Cat Array : %@",catArray);
isSelectAllBtnClicked = NO;

serviceArray = [[NSArray alloc]initWithObjects:@"Anal", @"Cuffed", @"Foreplay", @"Masturbation", @"Scat", @"Blindfolded",@"Deep throat", @"French Kissing", @"Missionary", @"Shower for 2", @"Bottom", @"Dinner Date", @"Full Bondage", @"Mutual Masturbation", @"Spanking", @"Boy on Boy", @"Dirty Talk",@"Girl on Girl", @"On top", @"Strap on", @"Choking", @"Doggy", @"Girlfriend Experience", @"Oral", @"Striptease", @"CIM", @"Dominate", @"Golden Shower",@"Oral Mutual", @"Submissive", @"COB", @"Fantasy", @"Kissing", @"Overnight", @"Top", @"COF", @"Fetish", @"Light Bondage", @"Rim me",@"Touching", @"Couples", @"Fisting", @"Lingerie", @"Rim you", @"Toys for me", @"Cuddling", @"Foot fetish", @"Massage", @"Role Play", @"Toys for you", nil];

[myTableView reloadData];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *reuseIdentifier = @"reuseIdentifier";
UITableViewCell *cell = [[UITableViewCell alloc]init];

if (cell != NULL)
{
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:reuseIdentifier];
}
cell.selectionStyle = UITableViewCellEditingStyleNone;
cell.backgroundView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"list_row_bg.png"]] autorelease];

UILabel *catListLbl = [[UILabel alloc] initWithFrame:CGRectMake(20, 10, 310, 20)];
NSString *strValue = [[NSUserDefaults standardUserDefaults]valueForKey:@"service"];

if ([strValue isEqualToString:@"service"])
{
catListLbl.text = [serviceArray objectAtIndex:indexPath.row];
topHaderLabel.text = @"Choose Services";
}
else
{
catListLbl.text = [catArray objectAtIndex:indexPath.row];
topHaderLabel.text = @"Choose Category";
}

catListLbl.textColor = [UIColor colorWithRed:244/255.0 green:29/255.0 blue:94/255.0 alpha:1.0];
catListLbl.backgroundColor = [UIColor clearColor];
[cell addSubview:catListLbl];

if (isSelectAllBtnClicked) {
UIButton *unCheckBtn = [[UIButton alloc]initWithFrame:CGRectMake(270, 10, 20, 20)];
[unCheckBtn setBackgroundImage:[UIImage imageNamed:@"checkbox_check.png"] forState:UIControlStateNormal];
unCheckBtn.tag = indexPath.row + 200;
//NSLog(@"%i",unCheckBtn.tag);
[cell addSubview:unCheckBtn];

[myTableView selectRowAtIndexPath:indexPath animated:YES scrollPosition:UITableViewScrollPositionNone];
[self tableView:myTableView didSelectRowAtIndexPath:indexPath];

}
else {
UIButton *unCheckBtn = [[UIButton alloc]initWithFrame:CGRectMake(270, 10, 20, 20)];
[unCheckBtn setBackgroundImage:[UIImage imageNamed:@"checkbox.png"] forState:UIControlStateNormal];
unCheckBtn.tag = indexPath.row + 200;
//NSLog(@"%i",unCheckBtn.tag);
[cell addSubview:unCheckBtn];
}

return cell;
}

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
int buttonTag = indexPath.row + 200;
//NSLog(@"%i",buttonTag);
UIButton *tempBtn = (UIButton *)[self.view viewWithTag:buttonTag];
[tempBtn setBackgroundImage:[UIImage imageNamed:@"checkbox_check.png"]forState:UIControlStateNormal];
}

-(void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath
{
int buttonTag = indexPath.row + 200;
NSLog(@"%i",buttonTag);
UIButton *tempBtn = (UIButton *)[self.view viewWithTag:buttonTag];
[tempBtn setBackgroundImage:[UIImage imageNamed:@"checkbox.png"]forState:UIControlStateNormal];
}

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
int count;
NSString *strValue = [[NSUserDefaults standardUserDefaults]valueForKey:@"service"];

if ([strValue isEqualToString:@"service"])
{
count = [serviceArray count];
}
else
{
count = [catArray count];
}

return count;
}

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return 40;
}

提前致谢。

最佳答案

当你滚动表格时

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

方法执行,你没有提到判断该行之前是否被选中的条件。您必须在 indexPath.row 中插入一个条件,并检查它是否已被选中

关于ios - 表格滚动时自动取消选中行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16330463/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com