2017-06-19 106 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

我已經提供了我想用你的解決方案的代碼 –