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 = @"SimpleTableItem";
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 = @"SimpleTableItem";
if(tableView.tag == 100)
{
simpleTableIdentifier = @"SimpleTableItem";
}
else if (tableView.tag == 300)
{
simpleTableIdentifier = @"SimpleTableItem1";
}
else if (tableView.tag == 400) {
simpleTableIdentifier = @"SimpleTableItem2";
}
UITableViewCell *cell = ;
</code></pre>
<p>更新最终结果</p>
<pre><code>#import "ViewController.h"
@interface ViewController () <UITableViewDataSource, UITableViewDelegate> {
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 = @"SimpleTableItem";
if (self.tableView1 == tableView)
{
simpleTableIdentifier = @"SimpleTableItem";
}
else if (self.tableView2 == tableView)
{
simpleTableIdentifier = @"SimpleTableItem1";
}
else if (self.tableView3 == tableView) {
simpleTableIdentifier = @"SimpleTableItem2";
}
UITableViewCell *cell = ;
if (cell == nil)
{
cell = [ initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:simpleTableIdentifier];
}
if (self.tableView1 == tableView)
{
cell.textLabel.text = @"tableView1";
}
else if (self.tableView2 == tableView)
{
cell.textLabel.text = @"tableView2";
}
else if (self.tableView3 == tableView) {
if ( == ||
== ) {
cell.accessoryType = UITableViewCellAccessoryCheckmark;
} else {
cell.accessoryType = UITableViewCellAccessoryNone;
}
cell.textLabel.text = @"tableView3";
}
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]