瀏覽代碼

购物车 -- baseView

Chris 6 年之前
父節點
當前提交
e4a194aa39

+ 20 - 4
RainbowPlanet/RainbowPlanet.xcodeproj/project.pbxproj

@@ -246,7 +246,9 @@
 		BDF47D7A228271F600941AB9 /* ShoppingCartView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDF47D79228271F600941AB9 /* ShoppingCartView.swift */; };
 		BDF47D7E22827C3F00941AB9 /* ProductSlidingTopBottomCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDF47D7D22827C3F00941AB9 /* ProductSlidingTopBottomCollectionViewCell.swift */; };
 		BDF47D80228288F900941AB9 /* ShoppingCartAccountView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDF47D7F228288F900941AB9 /* ShoppingCartAccountView.swift */; };
-		BDF47D822282B3D100941AB9 /* ShoppingChartHotSaleTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDF47D812282B3D100941AB9 /* ShoppingChartHotSaleTableViewCell.swift */; };
+		BDF47D822282B3D100941AB9 /* ShoppingCartHotSaleTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDF47D812282B3D100941AB9 /* ShoppingCartHotSaleTableViewCell.swift */; };
+		BDF47D852282C59F00941AB9 /* ShoppingCartListTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDF47D842282C59F00941AB9 /* ShoppingCartListTableViewCell.swift */; };
+		BDF47D872282C92200941AB9 /* ShoppingCartListTableViewHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDF47D862282C92200941AB9 /* ShoppingCartListTableViewHeader.swift */; };
 /* End PBXBuildFile section */
 
 /* Begin PBXContainerItemProxy section */
@@ -522,7 +524,9 @@
 		BDF47D79228271F600941AB9 /* ShoppingCartView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShoppingCartView.swift; sourceTree = "<group>"; };
 		BDF47D7D22827C3F00941AB9 /* ProductSlidingTopBottomCollectionViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProductSlidingTopBottomCollectionViewCell.swift; sourceTree = "<group>"; };
 		BDF47D7F228288F900941AB9 /* ShoppingCartAccountView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShoppingCartAccountView.swift; sourceTree = "<group>"; };
-		BDF47D812282B3D100941AB9 /* ShoppingChartHotSaleTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShoppingChartHotSaleTableViewCell.swift; sourceTree = "<group>"; };
+		BDF47D812282B3D100941AB9 /* ShoppingCartHotSaleTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShoppingCartHotSaleTableViewCell.swift; sourceTree = "<group>"; };
+		BDF47D842282C59F00941AB9 /* ShoppingCartListTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShoppingCartListTableViewCell.swift; sourceTree = "<group>"; };
+		BDF47D862282C92200941AB9 /* ShoppingCartListTableViewHeader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShoppingCartListTableViewHeader.swift; sourceTree = "<group>"; };
 		D469F6C3768252BCB7001EDD /* Pods_RainbowPlanet.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RainbowPlanet.framework; sourceTree = BUILT_PRODUCTS_DIR; };
 /* End PBXFileReference section */
 
@@ -2118,6 +2122,7 @@
 		BDF47D782282645900941AB9 /* View */ = {
 			isa = PBXGroup;
 			children = (
+				BDF47D882282D94D00941AB9 /* ShoppingCartList */,
 				BDF47D832282BF4300941AB9 /* ShppingCartHotSale */,
 				BDF47D79228271F600941AB9 /* ShoppingCartView.swift */,
 				BDF47D7F228288F900941AB9 /* ShoppingCartAccountView.swift */,
@@ -2128,12 +2133,21 @@
 		BDF47D832282BF4300941AB9 /* ShppingCartHotSale */ = {
 			isa = PBXGroup;
 			children = (
-				BDF47D812282B3D100941AB9 /* ShoppingChartHotSaleTableViewCell.swift */,
+				BDF47D812282B3D100941AB9 /* ShoppingCartHotSaleTableViewCell.swift */,
 				BDF47D7D22827C3F00941AB9 /* ProductSlidingTopBottomCollectionViewCell.swift */,
 			);
 			path = ShppingCartHotSale;
 			sourceTree = "<group>";
 		};
+		BDF47D882282D94D00941AB9 /* ShoppingCartList */ = {
+			isa = PBXGroup;
+			children = (
+				BDF47D862282C92200941AB9 /* ShoppingCartListTableViewHeader.swift */,
+				BDF47D842282C59F00941AB9 /* ShoppingCartListTableViewCell.swift */,
+			);
+			path = ShoppingCartList;
+			sourceTree = "<group>";
+		};
 		FA8AAFBADE8BD144A5C36FDB /* Frameworks */ = {
 			isa = PBXGroup;
 			children = (
@@ -2472,6 +2486,7 @@
 				A7A98E12227ECA11005306E9 /* ProductSearchModel.swift in Sources */,
 				A71AF0B0226EF185001730FE /* SearchCollectionViewCell.swift in Sources */,
 				A7A98E1D227EF1CB005306E9 /* SpecialBannerView.swift in Sources */,
+				BDF47D852282C59F00941AB9 /* ShoppingCartListTableViewCell.swift in Sources */,
 				A77F2CCA223209F2001BD3F6 /* BaseTabbarViewController.swift in Sources */,
 				A7CC75332271ABB0003C4F38 /* AddressManagerViewController.swift in Sources */,
 				A7CC750D227157DA003C4F38 /* MessageDetailesView.swift in Sources */,
@@ -2534,6 +2549,7 @@
 				A7CC753A2271B98B003C4F38 /* AddressManagerAddTableViewCell.swift in Sources */,
 				A71AF0AC226EDE37001730FE /* SearchNavigationbarView.swift in Sources */,
 				A7CC75432271E038003C4F38 /* SelfMentionContactsListViewController.swift in Sources */,
+				BDF47D872282C92200941AB9 /* ShoppingCartListTableViewHeader.swift in Sources */,
 				A7778CDF22461BAD00C7C47A /* PhoneCountryAreaSectionHeaderView.swift in Sources */,
 				A7A98E2D22801642005306E9 /* SwiftMoyaServiceCMSApi.swift in Sources */,
 				A7A98E3122801B10005306E9 /* ShoppingMallListView.swift in Sources */,
@@ -2624,7 +2640,7 @@
 				A7CC751F227190C5003C4F38 /* AccountSecurityViewController.swift in Sources */,
 				A7284440224DFACD00F82F30 /* InfoModel.swift in Sources */,
 				A72A72B522321DE000B21995 /* Extension+UITextView.swift in Sources */,
-				BDF47D822282B3D100941AB9 /* ShoppingChartHotSaleTableViewCell.swift in Sources */,
+				BDF47D822282B3D100941AB9 /* ShoppingCartHotSaleTableViewCell.swift in Sources */,
 				A757C92E22744ACE00226355 /* AddressManagerListModel.swift in Sources */,
 				A7541502224C5ECB002480B5 /* BaiduMapManager.swift in Sources */,
 				A757C9342274882E00226355 /* UIScrollView+MJRefreshEX.m in Sources */,

+ 1 - 2
RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCart/View/ShoppingCartAccountView.swift

@@ -13,12 +13,11 @@ import RxCocoa
 class ShoppingCartAccountView: BaseView {
     
     override func setupViews() {
+        self.backgroundColor = kffffffColor
         addSubview(allSelectBtn)
         addSubview(accountBtn)
         addSubview(priceLabel)
         addSubview(prePriceLabel)
-        
-        self.backgroundColor = kffffffColor
     }
     
     override func setupLayouts() {

+ 204 - 0
RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCart/View/ShoppingCartList/ShoppingCartListTableViewCell.swift

@@ -0,0 +1,204 @@
+//
+//  ShoppingCartListTableViewCell.swift
+//  RainbowPlanet
+//
+//  Created by Christopher on 2019/5/8.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//
+
+import UIKit
+
+class ShoppingCartListTableViewCell: UITableViewCell {
+    
+    override var frame: CGRect {
+        get {
+            return super.frame
+        }
+        set {
+            var frame = newValue
+            frame.origin.x += 14 * kScaleWidth
+            frame.size.width -= 14 * kScaleWidth * 2
+            super.frame = frame
+        }
+    }
+    
+    class func cellWith(tableView:UITableView,indexPath:IndexPath) -> ShoppingCartListTableViewCell {
+        let ID = "ShoppingCartListTableViewCell"
+        tableView.register(ShoppingCartListTableViewCell.self, forCellReuseIdentifier: ID)
+        let cell : ShoppingCartListTableViewCell = tableView.dequeueReusableCell(withIdentifier: ID, for: indexPath) as! ShoppingCartListTableViewCell
+        cell.indexPath = indexPath
+        return cell
+    }
+    
+    override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
+        super.init(style: style, reuseIdentifier: reuseIdentifier)
+        setupViews()
+        setupLayouts()
+    }
+    
+    required init?(coder aDecoder: NSCoder) {
+        fatalError("init(coder:) has not been implemented")
+    }
+    
+    var indexPath: IndexPath? {
+        didSet {
+            
+        }
+    }
+    
+    //MRAK: - 设置View
+    private func setupViews() {
+        self.selectionStyle = .none
+//        cornerRadius = 4
+//        masksToBounds = true
+        
+        addSubview(selectedButton)
+        addSubview(iconImagView)
+        addSubview(titleLabel)
+        addSubview(deliveryTime)
+        addSubview(sellScaleLabel)
+        addSubview(sellNumberLabel)
+        addSubview(sellPriceLabel)
+        addSubview(plusButton)
+        addSubview(numberLabel)
+        addSubview(reduceButton)
+        
+    }
+    
+    private func setupLayouts() {
+        selectedButton.snp.makeConstraints { (make) in
+            make.left.equalTo(10)
+            make.top.equalTo(50)
+            make.bottom.equalTo(-80)
+            make.size.equalTo(18)
+        }
+        iconImagView.snp.makeConstraints { (make) in
+            make.left.equalToSuperview().offset(40)
+            make.centerY.equalToSuperview()
+            make.width.height.equalTo(92 * kScaleWidth)
+        }
+        titleLabel.snp.makeConstraints { (make) in
+            make.left.equalTo(iconImagView.snp_right).offset(10)
+            make.top.equalTo(14)
+            make.right.equalTo(-26)
+            make.height.equalTo(20)
+        }
+        deliveryTime.snp.makeConstraints { (make) in
+            make.top.equalTo(titleLabel.snp.bottom).offset(8)
+            make.right.left.equalTo(titleLabel)
+            make.height.equalTo(17)
+        }
+        sellScaleLabel.snp.makeConstraints { (make) in
+            make.top.equalTo(deliveryTime.snp.bottom).offset(8)
+            make.left.right.equalTo(deliveryTime)
+            make.height.equalTo(17)
+        }
+        sellNumberLabel.snp.makeConstraints { (make) in
+            make.top.equalTo(sellScaleLabel.snp.bottom).offset(4)
+            make.left.right.equalTo(sellScaleLabel)
+            make.height.equalTo(17)
+        }
+        sellPriceLabel.snp.remakeConstraints { (make) in
+            make.top.equalTo(sellNumberLabel.snp.bottom).offset(8)
+            make.left.equalTo(sellNumberLabel.snp_left).offset(-4)
+            make.height.equalTo(23)
+        }
+        
+        plusButton.snp.makeConstraints { (make) in
+            make.centerY.equalTo(sellPriceLabel)
+            make.right.equalTo(-14)
+            make.size.equalTo(20)
+        }
+
+        numberLabel.snp.makeConstraints { (make) in
+            make.top.bottom.equalTo(plusButton)
+            make.right.equalTo(plusButton.snp.left)
+            make.width.greaterThanOrEqualTo(50)
+        }
+
+        reduceButton.snp.makeConstraints { (make) in
+            make.right.equalTo(numberLabel.snp.left)
+            make.top.width.bottom.equalTo(plusButton)
+        }
+        
+    }
+    
+    private lazy var selectedButton: UIButton = {
+        let selectedButton = UIButton(type: UIButton.ButtonType.custom)
+        selectedButton.setImage(kImage(name: "my_address_uncheck"), for: UIControl.State.normal)
+        selectedButton.setImage(kImage(name: "my_address_check"), for: UIControl.State.selected)
+        return selectedButton
+    }()
+
+    private lazy var iconImagView: UIImageView = {
+        let iconImagView = UIImageView()
+        iconImagView.image = kImage(name: "pic_preload")
+        return iconImagView
+    }()
+
+    private lazy var titleLabel: UILabel = {
+        let titleLabel = UILabel()
+        titleLabel.text = "妈妈冬装外套棉袄短款"
+        titleLabel.textColor = k333333Color
+        titleLabel.font = kScaleBoldFont14
+        titleLabel.textAlignment = .left
+        titleLabel.numberOfLines = 1
+        return titleLabel
+    }()
+
+    private lazy var deliveryTime: UILabel = {
+        let deliveryTime = UILabel()
+        deliveryTime.text = "预计配送时间:次日达"
+        deliveryTime.textColor = k666666Color
+        deliveryTime.font = kScaleRegularFont12
+        deliveryTime.textAlignment = .left
+        return deliveryTime
+    }()
+
+    private lazy var sellScaleLabel: UILabel = {
+        let sellScaleLabel = UILabel()
+        sellScaleLabel.text = "规格:3个装"
+        sellScaleLabel.textColor = k999999Color
+        sellScaleLabel.font = kScaleRegularFont12
+        return sellScaleLabel
+    }()
+
+    private lazy var sellNumberLabel: UILabel = {
+        let sellNumberLabel = UILabel()
+        sellNumberLabel.text = "x1"
+        sellNumberLabel.textColor = k999999Color
+        sellNumberLabel.font = kScaleRegularFont12
+        return sellNumberLabel
+    }()
+
+    private lazy var sellPriceLabel: UILabel = {
+        let sellPriceLabel = UILabel()
+        sellPriceLabel.text = "¥11.8"
+        sellPriceLabel.textColor = kfe352bColor
+        sellPriceLabel.font = kScaleBoldFont15
+        sellPriceLabel.textAlignment = .left
+        return sellPriceLabel
+    }()
+    
+    private lazy var plusButton: UIButton = {
+        let plusButton = UIButton(type: UIButton.ButtonType.custom)
+        plusButton.setImage(kImage(name: "shopping_mall_plus"), for: UIControl.State.normal)
+        return plusButton
+    }()
+
+    private lazy var numberLabel: UILabel = {
+        let numberLabel = UILabel()
+        numberLabel.text = "1"
+        numberLabel.textAlignment = .center
+        numberLabel.font = kRegularFont14
+        numberLabel.textColor = k333333Color
+        return numberLabel
+    }()
+
+    private lazy var reduceButton: UIButton = {
+        let reduceButton = UIButton(type: UIButton.ButtonType.custom)
+        reduceButton.setImage(kImage(name: "home_btn_buy_subtract"), for: UIControl.State.normal)
+        return reduceButton
+    }()
+    
+}

+ 71 - 0
RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCart/View/ShoppingCartList/ShoppingCartListTableViewHeader.swift

@@ -0,0 +1,71 @@
+//
+//  ShoppingCartListTableViewHeader.swift
+//  RainbowPlanet
+//
+//  Created by Christopher on 2019/5/8.
+//  Copyright © 2019 RainbowPlanet. All rights reserved.
+//
+
+import UIKit
+import RxSwift
+import RxCocoa
+
+class ShoppingCartListTableViewHeader: BaseView {
+    
+    override var frame: CGRect {
+        get {
+            return super.frame
+        }
+        set {
+            var frame = newValue
+            frame.origin.x += 14 * kScaleWidth
+            frame.size.width -= 14 * kScaleWidth * 2
+            super.frame = frame
+        }
+    }
+    
+    override func setupViews() {
+//        self.backgroundColor = kffffffColor
+        self.backgroundColor = UIColor.yellow
+        addSubview(separateView)
+        addSubview(titleButton)
+    }
+    
+    override func setupLayouts() {
+        separateView.snp.makeConstraints { (make) in
+            make.left.top.right.equalToSuperview()
+            make.height.equalTo(10)
+        }
+        
+        titleButton.snp.makeConstraints { (make) in
+            make.left.equalToSuperview().offset(10)
+            make.centerY.equalToSuperview()
+        }
+    }
+    
+    private lazy var separateView: UIView = {
+        let separateView = UIView()
+        separateView.backgroundColor = kf7f8faColor
+        return separateView
+    }()
+    
+    private lazy var titleButton: UIButton = {
+        let titleButton = UIButton(type: UIButton.ButtonType.custom)
+        titleButton.setTitle("彩虹星球专营", for: UIControl.State.normal)
+        titleButton.setTitleColor(k333333Color, for: UIControl.State.normal)
+        titleButton.setTitleColor(k666666Color, for: UIControl.State.selected)
+        titleButton.setImage(UIImage.imageWithColor(color: kDisabledButtonColor), for: UIControl.State.selected)
+        titleButton.setImage(UIImage.imageWithColor(color: kEnabledButtonColor), for: UIControl.State.normal)
+        titleButton.titleLabel?.font = kScaleRegularFont14
+        titleButton.rx.tap.subscribe(onNext: { [weak self] (data) in
+            
+            //            if let loginBlock = self?.loginBlock {
+            //                loginBlock((self?.phoneNumber)!,(self?.password)!)
+            //            }
+            print("点击了全选当前section")
+            
+        }).disposed(by: disposeBag)
+        return titleButton
+    }()
+    
+}

+ 16 - 9
RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCart/View/ShoppingCartView.swift

@@ -58,9 +58,9 @@ extension ShoppingCartView : UITableViewDelegate, UITableViewDataSource {
     func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
         switch section {
         case 0:
-            return 3
+            return 2
         case 1:
-            return 1
+            return 3
         case 2:
             return 1
         default:
@@ -71,19 +71,21 @@ extension ShoppingCartView : UITableViewDelegate, UITableViewDataSource {
     func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
         switch indexPath.section {
         case 0:
-            let cell = ShoppingMallCategoryTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
+            let cell = ShoppingCartListTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
+//            let cell = ShoppingMallCategoryTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
             cell.frame = tableView.bounds
             cell.layoutIfNeeded()
-            cell.reloadData()
+//            cell.reloadData()
             return cell
         case 1:
-            let cell = ShoppingMallRightSideleftPictureTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
+//            let cell = ShoppingMallRightSideleftPictureTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
+            let cell = ShoppingCartListTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
             cell.frame = tableView.bounds
             cell.layoutIfNeeded()
-            cell.reloadData()
+//            cell.reloadData()
             return cell
         case 2:
-            let cell = ShoppingChartHotSaleTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
+            let cell = ShoppingCartHotSaleTableViewCell.cellWith(tableView: tableView, indexPath: indexPath)
             cell.frame = tableView.bounds
             cell.layoutIfNeeded()
             cell.reloadData()
@@ -110,11 +112,16 @@ extension ShoppingCartView : UITableViewDelegate, UITableViewDataSource {
     }
     
     func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
-        return 10
+        return 48
     }
     
     func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
-        return nil
+        if section == 2 {
+            return nil
+        } else {
+            let headerView = ShoppingCartListTableViewHeader(frame: CGRect(x: 0, y: 0, width: kScreenWidth, height: 48))
+            return headerView
+        }
     }
     
     func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {

+ 10 - 11
RainbowPlanet/RainbowPlanet/Modules/ShoppingCartModule/ShoppingCart/View/ShppingCartHotSale/ShoppingChartHotSaleTableViewCell.swift

@@ -1,5 +1,5 @@
 //
-//  ShoppingChartHotSaleTableViewCell.swift
+//  ShoppingCartHotSaleTableViewCell.swift
 //  RainbowPlanet
 //
 //  Created by Christopher on 2019/5/8.
@@ -8,7 +8,7 @@
 
 import UIKit
 
-class ShoppingChartHotSaleTableViewCell: UITableViewCell {
+class ShoppingCartHotSaleTableViewCell: UITableViewCell {
     
     override var frame: CGRect {
         get {
@@ -22,10 +22,10 @@ class ShoppingChartHotSaleTableViewCell: UITableViewCell {
         }
     }
     
-    class func cellWith(tableView:UITableView,indexPath:IndexPath) -> ShoppingChartHotSaleTableViewCell {
-        let ID = "ShoppingChartHotSaleTableViewCell"
-        tableView.register(ShoppingChartHotSaleTableViewCell.self, forCellReuseIdentifier: ID)
-        let cell : ShoppingChartHotSaleTableViewCell = tableView.dequeueReusableCell(withIdentifier: ID, for: indexPath) as! ShoppingChartHotSaleTableViewCell
+    class func cellWith(tableView:UITableView,indexPath:IndexPath) -> ShoppingCartHotSaleTableViewCell {
+        let ID = "ShoppingCartHotSaleTableViewCell"
+        tableView.register(ShoppingCartHotSaleTableViewCell.self, forCellReuseIdentifier: ID)
+        let cell : ShoppingCartHotSaleTableViewCell = tableView.dequeueReusableCell(withIdentifier: ID, for: indexPath) as! ShoppingCartHotSaleTableViewCell
         cell.indexPath = indexPath
         return cell
     }
@@ -67,12 +67,12 @@ class ShoppingChartHotSaleTableViewCell: UITableViewCell {
         
         let titleLabel = UILabel()
         titleLabel.textColor = k333333Color
-        titleLabel.font = kMediumFont18
+        titleLabel.font = kBoldFont16
         titleLabel.text = "超值热卖"
         titleView.addSubview(titleLabel)
         titleLabel.snp.makeConstraints { (make) in
             make.center.equalToSuperview()
-            make.height.equalTo(25)
+            make.height.equalTo(23)
         }
         return titleView
     }()
@@ -96,7 +96,6 @@ class ShoppingChartHotSaleTableViewCell: UITableViewCell {
     
     //加载数据
     func reloadData() {
-        
         //collectionView重新加载数据
         self.collectionView.reloadData()
         //更新collectionView的高度约束
@@ -112,13 +111,13 @@ class ShoppingChartHotSaleTableViewCell: UITableViewCell {
     
 }
 
-extension ShoppingChartHotSaleTableViewCell: UICollectionViewDelegateFlowLayout,UICollectionViewDataSource {
+extension ShoppingCartHotSaleTableViewCell: UICollectionViewDelegateFlowLayout,UICollectionViewDataSource {
     func numberOfSections(in collectionView: UICollectionView) -> Int {
         return 1
     }
     
     func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
-        return 7
+        return 9
     }
     
     func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {