gpt4 book ai didi

ios - 在 UITableView ios 的每个部分中选择一行?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:18:32 25 4
gpt4 key购买 nike

场景:

我在一个 UITableView 中制作了 2 个部分,用户需要在每个部分中选择一行,如下面的屏幕截图所示。

预期结果:1. 用户应该能够在每个部分中选择一行

现在的结果:1. 在我选择了一个部分中的行之后,然后当我在第二部分中选择该行时,第一个选择消失了。

这是我的代码:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
// Uncheck the previous checked row

long sec=indexPath.section;
if(sec==0){
if(self->checkedIndexPath)
{
UITableViewCell* uncheckCell = [tableView
cellForRowAtIndexPath:self->checkedIndexPath];
uncheckCell.accessoryType = UITableViewCellAccessoryNone;
}
if([self->checkedIndexPath isEqual:indexPath])
{
self->checkedIndexPath = nil;
}
else
{
UITableViewCell* cell = [tableView cellForRowAtIndexPath:indexPath];
cell.accessoryType = UITableViewCellAccessoryCheckmark;
self->checkedIndexPath = indexPath;
}}

if(sec==1){

if(self->checkedIndexPath)
{
UITableViewCell* uncheckCell = [tableView
cellForRowAtIndexPath:self->checkedIndexPath];
uncheckCell.accessoryType = UITableViewCellAccessoryNone;
}
if([self->checkedIndexPath isEqual:indexPath])
{
self->checkedIndexPath = nil;
}
else
{
UITableViewCell* cell = [tableView cellForRowAtIndexPath:indexPath];
cell.accessoryType = UITableViewCellAccessoryCheckmark;
self->checkedIndexPath = indexPath;
}

}

}

感谢您的帮助。

最佳答案

这是最简单的方法。最后我找到了解决方案。它对我有用,希望它对你有用。声明这些

@interface ViewController ()
{
int selectedsection;
NSMutableArray *selectedindex;

}

替换 didSelectRowAtIndexPath 如下:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
// Uncheck the previous checked row

NSIndexPath *selectedIndexPath = [tableView indexPathForSelectedRow];

if(self.checkedIndexPath)

{

for (int i=0; i<[selectedindex count]; i++) {

NSIndexPath *temp= [selectedindex objectAtIndex:i];
if (temp.section==selectedIndexPath.section) {
UITableViewCell* uncheckCell = [tableView
cellForRowAtIndexPath:temp];
uncheckCell.accessoryType = UITableViewCellAccessoryNone;

}
}

NSInteger numb= [tableView numberOfRowsInSection:selectedIndexPath.section];

if (selectedsection==selectedIndexPath.section) {


UITableViewCell* uncheckCell = [tableView
cellForRowAtIndexPath:self.checkedIndexPath];
uncheckCell.accessoryType = UITableViewCellAccessoryNone;

}
}



if([self.checkedIndexPath isEqual:indexPath])
{
for (int i=0; i<[selectedindex count]; i++) {

NSIndexPath *temp= [selectedindex objectAtIndex:i];
if (temp.section==selectedIndexPath.section) {
UITableViewCell* uncheckCell = [tableView
cellForRowAtIndexPath:temp];
uncheckCell.accessoryType = UITableViewCellAccessoryNone;

}
}


self.checkedIndexPath = nil;
}
else
{
for (int i=0; i<[selectedindex count]; i++) {

NSIndexPath *temp= [selectedindex objectAtIndex:i];
if (temp.section==selectedIndexPath.section) {
UITableViewCell* uncheckCell = [tableView
cellForRowAtIndexPath:temp];
uncheckCell.accessoryType = UITableViewCellAccessoryNone;

}
}

UITableViewCell* cell = [tableView cellForRowAtIndexPath:indexPath];
cell.accessoryType = UITableViewCellAccessoryCheckmark;
self.checkedIndexPath = indexPath;
[selectedindex addObject:indexPath];
selectedsection=indexPath.section;

NSLog(@"check");
}






}

关于ios - 在 UITableView ios 的每个部分中选择一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27838390/

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