web-gelistirme-sc.com

Swift Kullanarak UITableView

Benim TapCell1.Swift

Bu Özel 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)
    }
}

Benim ViewController.Swift

Tüm Veri Kaynağı ve Temsilcileri doğru ayarlanmış. Fakat Özel Hücrem gösterilmiyor.

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.
        }
}

Sorun: Özel hücrem görüntülenmiyor. Lütfen yanlış yaptığım bir şey öner.

Not: işte kodum Dosyam İndirme Bağlantısı

24
PREMKUMAR

Sonunda yaptım.

TapCell1.Swift için

import UIKit

class TapCell1: UITableViewCell {

    @IBOutlet var labelTitle: UILabel

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

NextViewController.Swift için

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
    }
}

Çalışma kodum bağlantı: ÖZELLEŞTİRİLEN TABLO

46
PREMKUMAR

Hücre için class dosyasını kaydetmelisiniz. Bunun için Bu kod satırını değiştirin. 

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

Düzenle

Sen kodu iyi görünüyor ben kontrol ettim 

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

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

Çözüm büyük olasılıkla hücre yüksekliğinin manuel olarak ayarlanmasına dikkat çekiyor:

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

Bunun bir Xcode beta 6 böceği olduğuna inanıyorum.

3
Micah

Özel UITableViewCell'in çalışmasını sağlayabildim.

Üzerinde çalışıyor

  • Xcode 6 beta 6'da çalışır
  • Xcode 6 beta 5 ile çalışır

  • iOS 7,1

Nasıl

  • Hücre için bir ".xib" dosyası oluşturdum.
  • Film şeridine kopyalarım.
  • Film şeridi aracılığıyla ona bir tanımlayıcı verdim.
  • Bir tableview alt alt olduğundan emin olun

Bu şekilde yaparak, bir sınıf/kalem vb. Kaydetmenize gerek yoktur.

Bu benim özel hücrem.

 import UIKit 

 class TestCell: UITableViewCell {

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

 init geçersiz kıl (style: UITableViewCellStyle, reuseIdentifier: String!) {
 super.init (style: style, reuseIdentifier: reuseIdentifier) ​​
 } 

 func awakeFromNib () {
 super.awakeFromNib () 
 // Başlatma kodu 
 } 

 gerekli init (kodlayıcı aDecoder: NSCoder) {
 super.init (kodlayıcı: aDecoder) 
 } 
} 

Sizce veya "UITableViewDataSource" u genişlettiğiniz her yerde .. .. "cell2" nin storyboard aracılığıyla verdiğiniz "Identifier" ile aynı olduğundan emin olun.

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

 var cell: TestCell = tableView.dequeueReusableCellWithIdentifier ("cell2", forIndexPath: indexPath), TestCell 
.__ olarak. // Özel öğeleri kullanma örneği .
 cell.titleLabel.text = self.items [indexPath.row] 

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

 dönüş hücresi 
} 

uitableviewcell

1
thefreshteapot

Aşağıdaki kodu dene 

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

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

0
Vijay

Storyboard kullanmıyorsanız, UITableViewCell'in alt sınıfı olarak yeni bir dosya oluşturun. Özel hücrenizi ayarladıktan sonra "xib dosyaları da oluşturun" onay kutusunu işaretleyin. 

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

Aşağıdaki kodu deneyin: 

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

Öykü panonuzu kontrol edin, hücreyi seçin ve "Özel Müfettişlerinizi SINAVIZA ve proje adınızı MODÜLLE seçin" kimlik denetçisine bakın. 

Bunu yaptım Aşağıdaki resim ve kodu görmek için hata önlemek için mükemmel bir şekilde bu ipucunu deneyin çalışır

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

NSObject'in uzantısı

extension NSObject {    
    var name: String {
        return String(describing: type(of: self))
    } 
    class var name: String {
        return String(describing: self)
    }
}

Customtableviewcell'deki Özellikler

class var nib: UINib {
    return UINib(nibName:YourTableViewCell.name, bundle: nil)
}
class var idetifier: String {
    return YourTableViewCell.name
}

IViewController'da ekleyin

self.tableView.registerNib(YourTableViewCell.nib, forCellReuseIdentifier: YourTableViewCell.idetifier)

let cell = tableView.dequeueReusableCellWithIdentifier(YourTableViewCell.idetifier, forIndexPath: indexPath) as! YourTableViewCell
0
Rakesh Kunwar