ios - 设置collectionView的起始位置

标签 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()

            }
 })

最佳答案

您可以做的是从您的主数组创建一个 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/

相关文章:

ios - 如何将 Swift 3.0 编译的 POD 应用到 2.2 的项目中?

ios - 如果内容大小 > 实际高度则固定高度,如果内容大小 < 实际高度那么 tableview swift 3 的动态?

ios - 从 Adob​​e Air iOS 应用程序中删除图标光泽效果?

ios - 在 WKWebView 中禁用放大手势

ios - Swift...在运行时更改 .js 文件的变量

swift - 如何在 View Controller 中以编程方式切换 View ? (Xcode,iPhone)

ios - 在指定的时间间隔内在 Swift 中将 Double 从 0 动画化到 1

ios - 自动调整不同设备字体大小的最佳方法?

ios - 如何在 mapview.setRegion 函数上捕获运行时异常

ios - 使用 UIPanGestureRecognizer- Swift 3 旋转 ImageView