it-swarm-id.com

UITableView Menggunakan Swift

TapCell1.Swift saya

Ini adalah Custom UITableViewCell View

import UIKit

class TapCell1: UITableViewCell
{
    @IBOutlet var labelText : UILabel

    init(style: UITableViewCellStyle, reuseIdentifier: String!)
    {
        println("Ente")
        super.init(style: UITableViewCellStyle.Value1, reuseIdentifier: reuseIdentifier)
    }

    override func setSelected(selected: Bool, animated: Bool)
    {

        super.setSelected(selected, animated: animated)
    }
}

ViewController saya. Perpindahan

Semua DataSource dan Delegasi diatur dengan benar. Namun Sel kustom saya tidak ditampilkan.

import UIKit

class NextViewController: UIViewController, UITableViewDelegate, UITableViewDataSource
    {
        @IBOutlet var label: UILabel

        @IBOutlet var tableView : UITableView

        var getvalue = NSString()

        override func viewDidLoad()
        {
            super.viewDidLoad()

            label.text="HELLO GOLD"

            println("hello : \(getvalue)")
            self.tableView.registerClass(TapCell1.self, forCellReuseIdentifier: "Cell")
        }

        func tableView(tableView:UITableView!, numberOfRowsInSection section:Int)->Int
        {
            return 5
        }

        func numberOfSectionsInTableView(tableView:UITableView!)->Int
        {
            return 1
        }

        func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell!
        {
            var cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as TapCell1
            cell.labelText.text="Cell Text"
            return cell
        }

        override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
        }
}

Masalahnya adalah sel khusus saya tidak ditampilkan. Tolong sarankan apa pun yang saya lakukan salah.

Catatan: ini kode saya Tautan Unduhan File Saya

24
PREMKUMAR

Saya akhirnya berhasil.

Untuk TapCell1.Swift

import UIKit

class TapCell1: UITableViewCell {

    @IBOutlet var labelTitle: UILabel

    init(style: UITableViewCellStyle, reuseIdentifier: String!) {
        super.init(style: UITableViewCellStyle.Value1, reuseIdentifier: reuseIdentifier)
    }
}

Untuk NextViewController.Swift

import UIKit

class NextViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {

    @IBOutlet var tableView: UITableView

    var ListArray=NSMutableArray()

    override func viewDidLoad() {
        super.viewDidLoad()

        let nibName = UINib(nibName: "TapCell1", bundle:nil)
        self.tableView.registerNib(nibName, forCellReuseIdentifier: "Cell")

        for i in 0...70 {
            ListArray .addObject("Content: \(i)")
        }
    }


    func tableView(tableView: UITableView!, numberOfRowsInSection section: Int)->Int {
       return ListArray.count
    }

    func tableView(tableView: UITableView!, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
        return 51
    }

    func numberOfSectionsInTableView(tableView: UITableView!) -> Int {
        return 1
    }

    func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell {
        let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as TapCell1

        //cell.titleLabel.text = "\(ListArray.objectAtIndex(indexPath.item))"

        cell.labelTitle.text = "\(ListArray.objectAtIndex(indexPath.row))"

        return cell
    }
}

Tautan kode kerja saya: TABEL CUSTOMIZED

46
PREMKUMAR

Anda harus mendaftarkan class untuk sel. Untuk itu lakukan Ubah baris kode ini menjadi 

self.tableView.registerClass(TapCell1.classForCoder(), forCellReuseIdentifier: "Cell")

Edit

Kode Anda terlihat baik saya memeriksanya 

//cell.labelText.text="Cell Text"

cell.textLabel.text="Cell Text"   // use like this
9
Anil Varghese

Solusinya kemungkinan besar menunjuk ke pengaturan tinggi sel secara manual seperti:

override func tableView(tableView:UITableView!, heightForRowAtIndexPath indexPath:NSIndexPath)->CGFloat
{
    return 44
}

Saya percaya ini adalah bug Xcode beta 6.

3
Micah

Saya sekarang bisa mendapatkan Custom UITableViewCell agar berfungsi.

Bekerja

  • Berjalan pada Xcode 6 beta 6
  • Berjalan pada Xcode 6 beta 5

  • iOS adalah 7.1

Bagaimana

  • Saya telah membuat file ".xib" untuk sel.
  • Saya menyalinnya ke storyboard.
  • Melalui storyboard saya berikan Pengenal.
  • Saya memastikan itu adalah sub anak dari tampilan tabel

Melakukannya dengan cara ini, Anda tidak perlu mendaftar kelas/pena dll.

Ini sel khusus saya.

 impor UIKit 

 kelas TestCell: UITableViewCell {

 @IBOutlet var titleImageView: UIImageView! 
 @IBOutlet var titleLabel: UILabel! 

 override init (style: UITableViewCellStyle, reuseIdentifier: String!) {
 super.init (style: style, reuseIdentifier: reuseIdentifier) ​​
 } 

 override func awakeFromNib () {
 super.awakeFromNib () 
 // Kode inisialisasi 
 } 

 diperlukan init (coder aDecoder: NSCoder) {
 super.init (coder: aDecoder) 
 } 
} 

Dalam pandangan Anda, atau di mana pun Anda memperluas "UITableViewDataSource" . Pastikan "cell2" sama dengan "Identifier" yang Anda berikan melalui storyboard.

 func tableView (tableView: UITableView !, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell! {

 var cell: TestCell = tableView.dequeueReusableCellWithIdentifier ("cell2", untukIndexPath: indexPath) sebagai TestCell 

 // Contoh penggunaan elemen khusus .
 cell.titleLabel.text = self.items [indexPath.row] 

 var topImage = UIImage (bernama: "fv.png") 
 cell.titleImageView.image = topImage 

 kembali sel 
} 

uitableviewcell

1
thefreshteapot

Coba kode berikut ini 

var cell:CustomTableViewCell = tableView.dequeueReusableCellWithIdentifier("CustomTableViewCell") as CustomTableViewCell

https://github.com/iappvk/TableView-Swift

0
Vijay

Jika Anda tidak menggunakan Storyboard maka buat file baru sebagai subkelas dari UITableViewCell centang kotak centang "juga buat file xib" setelah itu mengatur sel kustom Anda. 

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
   {

    var customcell:CustomTableViewCellClass? = tableView.dequeueReusableCellWithIdentifier("cell") as? CustomTableViewCellClass
    if  (customcell==nil)
    {
        var nib:NSArray=NSBundle.mainBundle().loadNibNamed("CustomTableViewCellClass", owner: self, options: nil)

        customcell = nib.objectAtIndex(0) as? CustomTableViewCell
    }

    return customcell!


}
0
guru

Coba kode berikut ini: 

var cell = tableView.dequeueReusableCell(withIdentifier: "CustomCellTableView") as? CustomCellTableView
0
Soumya Soni

Periksa papan cerita Anda, pilih sel dan lihat "inspektur identitas di yang pilih CLASS ketik CustomClass Anda dan MODUL ketik nama proyek Anda 

Saya telah melakukan ini. Ini berfungsi dengan baik coba tip ini untuk menghindari kesalahan untuk melihat gambar dan kode di bawah ini

override func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath?) -> UITableViewCell? {

 // let cell = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: nil)

  //  cell.textLabel.text = array[indexPath!.row] as String

let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as CustomTableViewCell

    cell.nameLabel.text = array[indexPath!.row] as String
    cell.RestaurentView.image = UIImage(named:images[indexPath!.row])

    return cell
}
0
Quad