如果我设置起始位置为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()
}
})
最佳答案
您可以做的是从您的主数组创建一个 range
数组,并将该范围数组与您的 collectionView
一起使用。现在,每次开始位置和结束位置发生变化时,都会用新的范围数组替换范围数组并重新加载 collectionView
。
var mainArray = [String]()
var rangeArray = [String]()
现在,当开始或结束索引更改时,从 mainArray
初始化 rangeArray
。
rangeArray = Array(mainArray[start...end])
self.collectionView.reloadData()
关于ios - 设置collectionView的起始位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44626718/