菜鸟教程小白 发表于 2022-12-13 04:36:53

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-&gt;checkedIndexPath)
    {
      UITableViewCell* uncheckCell = [tableView
                                        cellForRowAtIndexPath:self-&gt;checkedIndexPath];
      uncheckCell.accessoryType = UITableViewCellAccessoryNone;
    }
    if()
    {
      self-&gt;checkedIndexPath = nil;
    }
    else
    {
      UITableViewCell* cell = ;
      cell.accessoryType = UITableViewCellAccessoryCheckmark;
      self-&gt;checkedIndexPath = indexPath;
    }}

    if(sec==1){

      if(self-&gt;checkedIndexPath)
      {
            UITableViewCell* uncheckCell = [tableView
                                          cellForRowAtIndexPath:self-&gt;checkedIndexPath];
            uncheckCell.accessoryType = UITableViewCellAccessoryNone;
      }
      if()
      {
            self-&gt;checkedIndexPath = nil;
      }
      else
      {
            UITableViewCell* cell = ;
            cell.accessoryType = UITableViewCellAccessoryCheckmark;
            self-&gt;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&lt;; 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&lt;; 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&lt;; 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(@&#34;check&#34;);
      }






}
</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]
查看完整版本: ios - 在UITableView ios的每个部分中选择一行?