一尘不染

在带有xib文件的UIView中使用CollectionView

swift

我正在这样做,我想使用CollectionView,但我还没有看到原型单元,也不知道在这种情况下如何使用CollectionView,有人可以帮助我吗?

我尝试以这种方式使用,但是比UICollectionView要花很多时间并且很难管理

在此处输入图片说明


阅读 295

收藏
2020-07-07

共1个答案

一尘不染

使用UICollectionView的主要方法是通过编程方式管理逻辑。

  1. 首先,创建一个继承自的新类UICollectionViewCell。选择是否要包含xib来轻松设计单元格: 在此处输入图片说明

  2. 使用Interface Builder或以编程方式设计单元。

  3. 创建包含xib(或情节提要)的主视图控制器,并在其中包含 集合视图 ,然后通过Interface Builder将其链接到关联的类。或者,您可以通过编程方式将收藏夹视图添加到您的UIViewController

在此处输入图片说明

  1. 通过在父类之后声明它们,使目标视图控制器符合UICollectionViewDelegateUICollectionViewDataSource协议:
        class ViewController: UIViewController, UICollectionViewDelegate, UICollectionViewDataSource {

        @IBOutlet weak var collectionView: UICollectionView!

        //...
    } 
  1. 在方法中注册与单元格关联的笔尖或类,viewDidLoad并将数据源和委托协议与视图控制器类相关联:
         let cellIdentifier = "cellIdentifier"

     override func viewDidLoad() {
         super.viewDidLoad()
         //if you use xibs:
          self.collectionView.register(UINib(nibName:"MyCollectionCell", bundle: nil), forCellWithReuseIdentifier: cellIdentifier)
         //or if you use class:
          self.collectionView.register(MyCollectionCell.self, forCellWithReuseIdentifier: cellIdentifier)

          self.collectionView.delegate = self
          self.collectionView.dataSource = self
     }
  1. 实现UICollectionViewDelegateUICollectionViewDataSource协议中声明的方法:
         let objects = ["Cat", "Dog", "Fish"]

     func numberOfSections(in collectionView: UICollectionView) -> Int {
           return 1
     }

     func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
           return self.objects.count
     }

     func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {

           let cell = collectionView.dequeueReusableCell(withReuseIdentifier: cellIdentifier, for: indexPath) as! MyCollectionCell

           //in this example I added a label named "title" into the MyCollectionCell class
           cell.title.text = self.objects[indexPath.item]

           return cell
     }
  1. 在模拟器(或真实设备)上运行您的应用,然后..等等!:)

在此处输入图片说明

有关更多信息:https :
//developer.apple.com/reference/uikit/uicollectionview

2020-07-07