设置collectionView的起始位置

时间:2017-06-19 09:23:46

标签: ios swift3

如果我设置起始位置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()

            }
 })

1 个答案:

答案 0 :(得分:1)

您可以做的是从主阵列中制作一个range数组,并将该范围数组与collectionView一起使用。现在每次更改起始位置和结束位置时,用新范围数组替换范围数组并重新加载collectionView

var mainArray = [String]()
var rangeArray = [String]()

当更改开始或结束索引时,现在从rangeArray初始化mainArray

rangeArray = Array(mainArray[start...end])
self.collectionView.reloadData()