Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> IOS

จะใช้ UICollectionView ใน Swift ได้อย่างไร?


หากต้องการใช้มุมมองคอลเลกชันอย่างรวดเร็ว อันดับแรก เราต้องสร้างมุมมองคอลเลกชัน เราสามารถลากและวางลงในกระดานเรื่องราว หรือสร้างเป็นโปรแกรมก็ได้ หลังจากนั้น เราต้องยืนยันคลาสของเรากับ UICollectionViewDataSource และ UICollectionViewDelegate นอกจากนี้ หากเราต้องการขนาดและเลย์เอาต์ของเซลล์ที่กำหนดเอง เราต้องยืนยันกับ UICollectionViewDelegateFlowLayout

มาดูขั้นตอนที่จำเป็นในการสร้างคอลเลกชัน View โดยทางโปรแกรม

func initCollection() {
   let layout = UICollectionViewFlowLayout()
   layout.itemSize = CGSize(width: 50, height: 50)
   let collection = UICollectionView.init(frame: self.view.frame, collectionViewLayout: layout)
   collection.dataSource = self
   collection.delegate = self
   collection.backgroundColor = colorLiteral(red: 0.3411764801, green: 0.6235294342, blue: 0.1686274558, alpha: 1)
   collection.register(UICollectionViewCell.self, forCellWithReuseIdentifier: "cell")
   self.view.addSubview(collection)
}

เราจำเป็นต้องเรียกใช้ฟังก์ชันข้างต้นในวิธี ViewDidLoad() ของเรา ไม่ว่าเราจะสร้างคอลเลกชันโดยทางโปรแกรมหรือด้วยกระดานเรื่องราว เราต้องจัดสรรแหล่งข้อมูลและมอบหมายเพื่อให้ข้อมูลกับตาราง และสังเกตการกระทำตามลำดับ

ตอนนี้ เราต้องบอกคอลเลกชันว่าควรมีกี่ส่วน -

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

หลังจากนั้นเราต้องบอกว่าจะมีกี่รายการและควรมีข้อมูลอะไรบ้างในเซลล์

func collectionView(_ collection: UICollectionView, numberOfItemsInSection section: Int) -> Int {
   return 7
}
func collectionView(_ collection: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
   let cell = collection.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath)
   cell.layer.backgroundColor = colorLiteral(red: 0.4392156899, green: 0.01176470611, blue: 0.1921568662, alpha: 1)
   return cell
}

เราสามารถกำหนดขนาดต่างๆ ตามความต้องการได้

func collectionView(_ collection: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
   let size = CGSize(width: 200, height: 50)
   return size
}

เมื่อเราเรียกใช้โค้ดด้านบนบนอุปกรณ์ นี่คือผลลัพธ์ที่สร้างขึ้น

จะใช้ UICollectionView ใน Swift ได้อย่างไร?