2017-06-19 73 views
0

如果我设置了起始位置21并且结束索引为35,那么collectionView将显示从21到35而不是从0到35的按钮。
有没有什么办法可以在collectionView中实现?设置collectionView的起始位置

我从火力取值和值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

你能做的是从你的主阵列使一个range阵列和使用范围的数组与您的collectionView。现在每当起始位置和结束位置改变时,用新的距离阵列替换范围阵列并重新加载collectionView

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

现在从mainArray初始化rangeArray当开始或结束索引被改变。

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

谢谢@Nirav d应用解决方案它给我的错误后:无法下标类型的值“[INT]”与类型的索引“CountableClosedRange ” –

+0

@PratikSanap编辑你的问题与你试过代码,所以它会给我们想法你正在尝试 –

+0

我已经提供了我想用你的解决方案的代码 –