菜鸟教程小白 发表于 2022-12-12 16:26:31

ios - 滚动表格 View 后 UITableViewCellAccessoryCheckmark 消失


                                            <p><p>我正在处理 tableview 多选,取消选择。</p>

<p>我有 3 个表格 View (带有标签 400 的表格 View 我需要多项选择和
取消选择 -> alllMumbaiTableview)</p>

<p><strong>我的问题:</strong>当我选择多行时,<code>UITableViewCellAccessoryCheckmark</code> 消失了
            滚动表格 View 后。但是这里我可以看到那些细胞还在
            仅选中状态,但不显示 <code>UITableViewCellAccessoryCheckmark</code>。</p>

<p> <a href="/image/rEer2.png" rel="noreferrer noopener nofollow"><img src="/image/rEer2.png" alt="enter image description here"/></a> </p>

<p><strong>滚动后我的表格是这样的</strong></p>

<p> <a href="/image/pPkXR.png" rel="noreferrer noopener nofollow"><img src="/image/pPkXR.png" alt="enter image description here"/></a> </p>

<p><strong>这是我的代码</strong> </p>

<pre><code>@property (nonatomic, strong) NSMutableArray *arrIndexpaths;
</code></pre>

<p><strong>UItableview 方法 -</strong> </p>

<pre><code>- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

       static NSString *simpleTableIdentifier = @&#34;SimpleTableItem&#34;;
       UITableViewCell *cell = ;


         if(tableView.tag == 100)
      {
            cell.textLabel.text = ;
      }
      else if (tableView.tag == 300)
      {
            cell.textLabel.text = ;
      }
      else if (tableView.tag == 400)
      {
                if (cell == nil)
                {

                  cell = [ initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:simpleTableIdentifier];

                }
                if (])
                {
                  cell.accessoryType = UITableViewCellAccessoryCheckmark;
                }
                else
                {
                  cell.accessoryType = UITableViewCellAccessoryNone;
                }

                  cell.textLabel.text = ;

      }
    returncell;

}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
   {


      if(tableView.tag == 100)
      {
            _typeTextfield.text=;
            _typeTableview.hidden = YES;
      }
      else if (tableView.tag == 300)
      {
            _specialityTextield.text=;
            _specialityTableview.hidden = YES;
      }
      else if (tableView.tag == 400)
      {

            UITableViewCell *tableViewCell = ;
            tableViewCell.accessoryType = UITableViewCellAccessoryCheckmark;
            ];
      }

}
- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (tableView.tag == 400)
    {
      UITableViewCell *tableViewCell = ;
      tableViewCell.accessoryType = UITableViewCellAccessoryNone;
      ];

    }

}
</code></pre>

<p><strong>我想要什么:</strong> </p>

<p>1) 我想要 <code>UITableViewCellAccessoryCheckmark</code> 即使在滚动表格 View 之后(但是当我选择一个时不应该选择其他行。我以前的问题 -> <a href="https://stackoverflow.com/questions/32843412/selecting-one-uitableviewcell-selects-the-other-cell-after-scrolling" rel="noreferrer noopener nofollow">Selecting one UITableViewCell selects the other cell after scrolling</a>)</p>

<p>2) 我只需要将所有选定的值放入单个数组中。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我想建议使用每个不同的单元格标识符。我不知道如何设置 tableviews 布局,但它看起来 tableviewcell 队列替换了其他单元格,与您在上面实现的不同。</p>

<pre><code>static NSString *simpleTableIdentifier = @&#34;SimpleTableItem&#34;;

if(tableView.tag == 100)
{
    simpleTableIdentifier = @&#34;SimpleTableItem&#34;;
}
else if (tableView.tag == 300)
{
    simpleTableIdentifier = @&#34;SimpleTableItem1&#34;;
}
else if (tableView.tag == 400) {

    simpleTableIdentifier = @&#34;SimpleTableItem2&#34;;
}

UITableViewCell *cell = ;
</code></pre>

<p>更新最终结果</p>

<pre><code>#import &#34;ViewController.h&#34;

@interface ViewController () &lt;UITableViewDataSource, UITableViewDelegate&gt; {
    NSArray *tmpArray;
}

@property(nonatomic, weak) IBOutlet UITableView *tableView1, *tableView2, *tableView3;

@end

@implementation ViewController

- (void)viewDidLoad {
    ;
    // Do any additional setup after loading the view, typically from a nib.

    tmpArray = @[,];

    ;
    ;
    ;

}

- (void)didReceiveMemoryWarning {
    ;
    // Dispose of any resources that can be recreated.
}


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return 20;
}

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

    static NSString *simpleTableIdentifier = @&#34;SimpleTableItem&#34;;

    if (self.tableView1 == tableView)
    {
      simpleTableIdentifier = @&#34;SimpleTableItem&#34;;
    }
    else if (self.tableView2 == tableView)
    {
      simpleTableIdentifier = @&#34;SimpleTableItem1&#34;;
    }
    else if (self.tableView3 == tableView) {

      simpleTableIdentifier = @&#34;SimpleTableItem2&#34;;
    }


    UITableViewCell *cell = ;
    if (cell == nil)
    {
      cell = [ initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:simpleTableIdentifier];
    }

    if (self.tableView1 == tableView)
    {
      cell.textLabel.text = @&#34;tableView1&#34;;
    }
    else if (self.tableView2 == tableView)
    {
      cell.textLabel.text = @&#34;tableView2&#34;;
    }
    else if (self.tableView3 == tableView) {

      if ( == ||
             == ) {
            cell.accessoryType = UITableViewCellAccessoryCheckmark;
      } else {
            cell.accessoryType = UITableViewCellAccessoryNone;
      }

      cell.textLabel.text = @&#34;tableView3&#34;;
    }

    returncell;
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    return 70;
}
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 滚动表格 View 后 UITableViewCellAccessoryCheckmark 消失,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/32859875/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/32859875/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 滚动表格 View 后 UITableViewCellAccessoryCheckmark 消失