                 return
         }
         let sectionCount = dataSource.numberOfSections!(in: collectionView)
+        var laList = [UICollectionViewLayoutAttributes]()
         for section in 0..<sectionCount {
             // header
             if let headerLA = self.prepareSupplementaryView(ofKind: UICollectionView.elementKindSectionHeader, section: section, y: self.maxHeight) {
-                self.layoutAttributes.append(headerLA)
+                laList.append(headerLA)
                 self.maxHeight = self.maxHeight + headerLA.frame.maxY
             }
             // cell

                layoutAttributes.frame.origin = CGPoint(x: columnXList[columnIndex], y: columnYList[columnIndex] + self.minimumLineSpacing)
                columnYList[columnIndex] = layoutAttributes.frame.maxY
                columnIndex = columnIndex + 1
                if columnIndex == self.columnCount - 1 { // 换行
                    highLowIndex = self.prepareHighLowIndex(columnYList: columnYList)
                    columnIndex = 0
                }

            self.maxHeight = self.maxHeight + self.sectionInset.bottom
            // bottom
            if let bottomLA = self.prepareSupplementaryView(ofKind: UICollectionView.elementKindSectionFooter, section: section, y: self.maxHeight) {
                laList.append(bottomLA)
                self.maxHeight = self.maxHeight + bottomLA.frame.maxY
            }
        }
        self.layoutAttributes.append(contentsOf: laList)
    }
    
    func prepareSupplementaryView(ofKind elementKind: String, section: Int, y: CGFloat) -> UICollectionViewLayoutAttributes? {
