【发布时间】:2019-04-08 09:33:24
【问题描述】:
我有一个切换按钮。最初,它将处于关闭模式。因此,当我打开切换开关时,我需要将一组数据传递给集合视图。当它再次关闭时,我需要将一组数据传递给集合视图。
这是我的代码:
@IBAction func cateSelTap(_ sender: Any) {
isChecked = !isChecked
if isChecked {
self.subsetTheCategoryListForClientLogin(isCityLogin: false)
}else {
self.subsetTheCategoryListForClientLogin(isCityLogin: true)
}
}
func subsetTheCategoryListForClientLogin(isCityLogin: Bool) {
let cityType = "city"
print("LOG:CATE1 \(self.categoryarr)")
var objectIds = [Int]()
var subsetArray = NSMutableArray()
for i in 0..<self.categoryarr.count {
let type = (self.categoryarr.object(at:i) as AnyObject).value(forKey: "type") as! String
if isCityLogin {
if type == cityType {
subsetArray.add(self.categoryarr.object(at:i) as AnyObject)
objectIds.append(i)
}
} else {
if type != cityType {
subsetArray.add(self.categoryarr.object(at:i) as AnyObject)
objectIds.append(i)
}
}
}
self.categoryarr.removeAllObjects()
self.categoryarr = subsetArray
print("LOG:CATE2 \(self.categoryarr)")
DispatchQueue.main.async{
self.categorycollection.reloadData()
// self.categorycollection.performSelector(onMainThread: #selector(self.categorycollection.reloadData), with: nil, waitUntilDone: true)
}
}
当我运行我的应用程序时,当我关闭时 - 我的集合视图数据没有显示确切的数据..仍然显示以前的数据。当我关闭它的完全空白时再次。
有什么帮助吗?
【问题讨论】:
-
似乎您在按钮操作的两个条件下都使用相同的参数调用
subsetTheCategoryListForClientLogin:。此外,您正在对self.categoryarr应用过滤器并将结果分配给自身。这是在一些开/关循环后集合变为空白的原因。 -
是的,我将布尔值传递给它。基于该布尔值,只有我的数据将发送到 coll 视图
-
@Akhilrajtr 是的,因为在我的集合视图中,我使用 categoryarr 来显示我的集合视图单元格中的值。所以只有我分配给 categoryarr。如果关闭,则布尔值将为假。如果这是在布尔值上,那将是正确的。仅基于 bool val 我正在附加数据。
-
如果您需要对原始数组进行条件过滤并在collectionview中显示过滤后的项目,请使用不同的数组作为collection view source并保持原始数据源不变。
标签: ios swift iphone xcode uicollectionview