Mari saya mulai dengan menjawab pertanyaan Anda terlebih dahulu.
Apakah saya harus membuat kode kelas sendiri untuk setiap sel? => Ya, saya yakin begitu. Setidaknya, saya akan melakukan itu.
Bisakah saya menggunakan satu tableviewController? => Ya, Anda bisa. Namun, Anda juga dapat memiliki tampilan tabel di dalam Pengontrol Tampilan.
Bagaimana cara mengisi data di sel yang berbeda? => Bergantung pada kondisinya, Anda dapat mengisi data di sel yang berbeda. Misalnya, anggaplah Anda ingin dua baris pertama menjadi seperti tipe sel pertama. Jadi, Anda cukup membuat / menggunakan kembali jenis sel pertama dan mengatur datanya. Akan lebih jelas, saat saya menunjukkan tangkapan layar, saya kira.
Izinkan saya memberi Anda contoh dengan TableView di dalam ViewController. Setelah Anda memahami konsep utamanya, maka Anda dapat mencoba dan memodifikasi sesuka Anda.
Langkah 1: Buat 3 TableViewCells Kustom. Saya menamakannya, FirstCustomTableViewCell, SecondCustomTableViewCell, ThirdCustomTableViewCell. Anda harus menggunakan nama yang lebih bermakna.

Langkah 2: Buka Main.storyboard dan seret dan lepas TableView di dalam Pengontrol Tampilan Anda. Sekarang, pilih tampilan tabel dan pergi ke inspektur identitas. Setel "Prototype Cells" ke 3. Di sini, Anda baru saja memberi tahu TableView bahwa Anda mungkin memiliki 3 jenis sel yang berbeda.

Langkah 3: Sekarang, pilih sel pertama di TableView Anda dan di inspektur identitas, letakkan "FirstCustomTableViewCell" di bidang kelas Kustom dan kemudian setel pengenal sebagai "firstCustomCell" di inspektur atribut.


Lakukan hal yang sama untuk semua yang lain- Setel Kelas Kustomnya masing-masing sebagai "SecondCustomTableViewCell" dan "ThirdCustomTableViewCell". Juga setel pengenal sebagai secondCustomCell dan thirdCustomCell secara berurutan.
Langkah 4: Edit Kelas Sel Kustom dan tambahkan outlet sesuai kebutuhan Anda. Saya mengeditnya berdasarkan pertanyaan Anda.
PS: Anda harus meletakkan outlet di bawah definisi kelas.
Jadi, Di FirstCustomTableViewCell.swift, di bawah
class FirstCustomTableViewCell: UITableViewCell {
Anda akan menempatkan outlet tampilan label dan gambar Anda.
@IBOutlet weak var myImageView: UIImageView!
@IBOutlet weak var myLabel: UILabel!
dan di SecondCustomTableViewCell.swift, tambahkan dua label seperti-
import UIKit
class SecondCustomTableViewCell: UITableViewCell {
@IBOutlet weak var myLabel_1: UILabel!
@IBOutlet weak var myLabel_2: UILabel!
override func awakeFromNib() {
super.awakeFromNib()
}
override func setSelected(selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
}
}
dan ThirdCustomTableViewCell.swift akan terlihat seperti-
import UIKit
class ThirdCustomTableViewCell: UITableViewCell {
@IBOutlet weak var dayPicker: UIDatePicker!
override func awakeFromNib() {
super.awakeFromNib()
}
override func setSelected(selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
}
}
Langkah 5: Di ViewController Anda, buat Outlet untuk TableView Anda dan atur koneksi dari storyboard. Selain itu, Anda perlu menambahkan UITableViewDelegate dan UITableViewDataSource dalam definisi kelas sebagai daftar protokol. Jadi, definisi kelas Anda akan terlihat seperti-
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
Setelah itu lampirkan UITableViewDelegate dan UITableViewDatasource tampilan tabel Anda ke pengontrol. Pada titik ini viewController.swift Anda akan terlihat seperti-
import UIKit
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet weak var tableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
PS: Jika Anda menggunakan TableViewController daripada TableView di dalam ViewController, Anda bisa melewatkan langkah ini.
Langkah 6: Seret dan lepas tampilan gambar dan label di sel Anda sesuai dengan kelas Sel. dan kemudian memberikan koneksi ke outlet mereka dari storyboard.
Langkah 7: Sekarang, tulis metode yang diperlukan UITableViewDatasource di pengontrol tampilan.
import UIKit
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet weak var tableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
}
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 3
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
if indexPath.row == 0 {
let cell: UITableViewCell = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "firstCustomCell")
//set the data here
return cell
}
else if indexPath.row == 1 {
let cell: UITableViewCell = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "secondCustomCell")
//set the data here
return cell
}
else {
let cell: UITableViewCell = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "thirdCustomCell")
//set the data here
return cell
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}