ios - 在UITableView ios的每个部分中选择一行?
<p><p>场景:</p>
<p>我在一个 UITableView 中创建了 2 个部分,用户需要在每个部分中选择一行,如下面的屏幕截图所示。 </p>
<p>预期结果:
1.用户应该能够在每个部分中选择一行</p>
<p>现在的结果:
1.在我选择了一个部分中的行之后,然后当我选择第二部分中的行时,第一个选择消失了。 </p>
<p>这是我的代码:</p>
<pre><code>- (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 = nil;
}
else
{
UITableViewCell* cell = ;
cell.accessoryType = UITableViewCellAccessoryCheckmark;
self->checkedIndexPath = indexPath;
}}
if(sec==1){
if(self->checkedIndexPath)
{
UITableViewCell* uncheckCell = [tableView
cellForRowAtIndexPath:self->checkedIndexPath];
uncheckCell.accessoryType = UITableViewCellAccessoryNone;
}
if()
{
self->checkedIndexPath = nil;
}
else
{
UITableViewCell* cell = ;
cell.accessoryType = UITableViewCellAccessoryCheckmark;
self->checkedIndexPath = indexPath;
}
}
}
</code></pre>
<p>感谢您的帮助。 </p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>这是最简单的方法。
最后我找到了解决方案。它对我有用,希望它对你有用。
声明这些</p>
<pre><code>@interface ViewController ()
{
int selectedsection;
NSMutableArray *selectedindex;
}
</code></pre>
<p>如下替换didSelectRowAtIndexPath:</p>
<pre><code>- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
// Uncheck the previous checked row
NSIndexPath *selectedIndexPath = ;
if(self.checkedIndexPath)
{
for (int i=0; i<; i++) {
NSIndexPath *temp= ;
if (temp.section==selectedIndexPath.section) {
UITableViewCell* uncheckCell = [tableView
cellForRowAtIndexPath:temp];
uncheckCell.accessoryType = UITableViewCellAccessoryNone;
}
}
NSInteger numb= ;
if (selectedsection==selectedIndexPath.section) {
UITableViewCell* uncheckCell = [tableView
cellForRowAtIndexPath:self.checkedIndexPath];
uncheckCell.accessoryType = UITableViewCellAccessoryNone;
}
}
if()
{
for (int i=0; i<; i++) {
NSIndexPath *temp= ;
if (temp.section==selectedIndexPath.section) {
UITableViewCell* uncheckCell = [tableView
cellForRowAtIndexPath:temp];
uncheckCell.accessoryType = UITableViewCellAccessoryNone;
}
}
self.checkedIndexPath = nil;
}
else
{
for (int i=0; i<; i++) {
NSIndexPath *temp= ;
if (temp.section==selectedIndexPath.section) {
UITableViewCell* uncheckCell = [tableView
cellForRowAtIndexPath:temp];
uncheckCell.accessoryType = UITableViewCellAccessoryNone;
}
}
UITableViewCell* cell = ;
cell.accessoryType = UITableViewCellAccessoryCheckmark;
self.checkedIndexPath = indexPath;
;
selectedsection=indexPath.section;
NSLog(@"check");
}
}
</code></pre></p>
<p style="font-size: 20px;">关于ios - 在UITableView ios的每个部分中选择一行?,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/27838390/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/27838390/
</a>
</p>
页:
[1]