如果我设置起始位置21且结束索引为35,则collectionView将显示21到35之间的按钮,而不是0到35之间的按钮。 我们有什么办法可以在collectionView中实现这个目的吗?
我从firebase获取值,值为rollNoFrom和rollNoTo
代码:
var mainArrayRoll = [String]()
var rangeArray = [String]()
var rollFrom = Int()
override func viewDidLoad() {
super.viewDidLoad()
self.takeAttandanceCollection.delegate=self
self.takeAttandanceCollection.dataSource=self
let ref = Database.database().reference().child("Subject").child("DBMS")
ref.observeSingleEvent(of: .value, with: { (snapshot) in
if let userDict = snapshot.value as? [String:Any] {
self.temp = (userDict["RollNoTo"]! as! String)
self.temp2 = (userDict["RollNoFrom"]! as! String)
self.rollTo=Int(self.temp)!
self.rollFrom=Int(self.temp)!
print(self.rollTo)
self.mainArrayRoll=self.rangeArray[self.rollFrom...self.rollTo]
self.takeAttandanceCollection?.reloadData()
}
})
答案 0 :(得分:1)
您可以做的是从主阵列中制作一个range
数组,并将该范围数组与collectionView
一起使用。现在每次更改起始位置和结束位置时,用新范围数组替换范围数组并重新加载collectionView
。
var mainArray = [String]()
var rangeArray = [String]()
当更改开始或结束索引时,现在从rangeArray
初始化mainArray
。
rangeArray = Array(mainArray[start...end])
self.collectionView.reloadData()