IOS中的多选
Posted
技术标签:
【中文标题】IOS中的多选【英文标题】:Multi select in IOS 【发布时间】:2016-10-26 05:11:28 【问题描述】:我不确定下面的代码有什么问题。我所做的只是获取表中的所有行并将它们标记为已选中,如果它们已被选中,我将取消选中它们。每当我尝试这个时,一些行索引路径是不正确的。每次总会有一些索引路径丢失。我做错了什么?
let visibleRows = self.tableView.indexPathsForVisibleRows
for row in visibleRows!
if(self.sections[row.section].files[row.row].type != "cloud")
let cell = self.tableView.cellForRowAtIndexPath(row)
cell?.setSelected(action, animated: true)
tableView.selectRowAtIndexPath(row, animated: true, scrollPosition: UITableViewScrollPosition.Top)
if(action == true)
cell?.accessoryType = .Checkmark
else
cell?.accessoryType = .None
NSNotificationCenter.defaultCenter().postNotificationName("disableOptions", object: nil)
【问题讨论】:
你确定你得到了所有行吗?您的代码是为 VisibleRows 编写的。 【参考方案1】:执行以下步骤
-
创建并初始化一个
MutableArray
,可能在viewDidLoad
。
添加选定cell
的indexPath
。在cell
选择的delegate
方法中执行此操作,didSelectRowAtIndexPath
方法
检查indexPath
数组中的cellForRowAtIndexPath
。如果indexPath
存在则作为选中的cell
处理,否则作为未选中的cell
。
如果didSelectRowAtIndexPath
方法中需要,请从数组中删除indexPath
。
【讨论】:
NSMutableIndexSet
比数组好
谢谢Paulw11,我只是提供了实现的步骤,不管集合对象是什么:)
很抱歉,问题不在于全选,但我确实理解您的方式非常有效,非常感谢您的回复,我问了另一个问题,描述了您可以采取的确切情况看看吧,***.com/questions/40255463/…以上是关于IOS中的多选的主要内容,如果未能解决你的问题,请参考以下文章
深入浅出Flask(16): H-ui前端框架的单选多选开关控件