Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Custom cell in Xcode 6 + Swift not displaying

I've searched a lot on the internet for a solution to this problem but I can't figure it out. I'm trying to create a custom cell in a table view.

I made a CustomCell.swift class to configure the labels I want in my custom cell, created it via storyboard (the first prototype cell in the tableview) and linked it with a identifier to the cellForRowAtIndexPath method

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

    let cellIdentifier = "huisCell"

    var cell: CustomCell? = tableView.dequeueReusableCellWithIdentifier(cellIdentifier) as? CustomCell

    if cell == nil {
        cell = CustomCell(style: UITableViewCellStyle.Value1, reuseIdentifier: cellIdentifier)
    }

    cell!.huisAdresLabel.text = "123"
    cell!.huisDetailLabel.text = "456"

    return cell
}

My CustomCell.swift code is like this:

class CustomCell: UITableViewCell {

    @IBOutlet var huisAdresLabel: UILabel
    @IBOutlet var huisDetailLabel: UILabel

}

It's very basic now, but I just want it to work because than I can expand the cell with more attributes and style it better.

Pictures via DropBox because I need 10 reputation to properly document my problem :)

https://www.dropbox.com/sh/5v9jb6cqp80knze/AAD5-yPR8-KoStQddkqKIbcUa

I hope someone can explain what I'm doing wrong.

Edit:

To clear up some things, before my try to make a custom cell, I got it working with the basic cells, with the one label on the left hand side. But when I tried to style the tableview and created a custom cell it won't work.

Also, when testing different solutions I came across the problem that de two labels in CustomCell.swift are nil. Even when I made a custom init and did like a

self.huisAdresLabel = UILabel()

it was still nil. in the code that I showed you it prints the following:

<UILabel: 0xb2aadc0; frame = (0 -21; 42 21); text = '123'; clipsToBounds = YES; opaque = NO; autoresize = RM+BM; userInteractionEnabled = NO; layer = <_UILabelLayer: 0xb2aa3a0>>
like image 597
Ricardo42 Avatar asked Jun 15 '14 15:06

Ricardo42


1 Answers

I resolved this issue by overriding the following function, setting the height of the cells manually:

override func tableView(tableView:UITableView!, heightForRowAtIndexPath indexPath:NSIndexPath)->CGFloat
{
    return 44
}
like image 187
Micah Avatar answered Nov 04 '22 16:11

Micah