2015-12-19 1 views
0

У меня есть UIViewController, в который я встроил UITableView. Потому что я не хочу, чтобы UIViewController получить слишком тяжелым, я отделил UITableViewDataSource и UITableViewDelegateПравая деталь в UITableView не отображается

class ViewController: UIViewController { 

    @IBOutlet var tableView: UITableView! 

    var dataSource : UITableViewDataSource! 
    var tableDelegate: UITableViewDelegate! 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     dataSource = TableViewDataSource() 
     tableDelegate = TableViewDelegate() 

     tableView.dataSource = dataSource 
     tableView.delegate = tableDelegate 


     // Do any additional setup after loading the view, typically from a nib. 
    } 

} 

class TableViewDataSource : NSObject, UITableViewDataSource { 

    func numberOfSectionsInTableView(tableView: UITableView) -> Int { 
     return 1 
    } 
    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 

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

     let cellIdentifier = "MyCellIdentifier" 
     let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath) 

     cell.textLabel?.text = "hello" 
     cell.detailTextLabel?.text = "world" 

     return cell 
    } 
} 
class TableViewDelegate : NSObject, UITableViewDelegate { 
    //custom code here if required 


} 

В моей раскадровке, я создал прототип ячейку в пределах UITableView с идентификатором

MyCellIdentifier

Я использую этот идентификатор для создания ячейки в моем делекторе UITableViewDataSource.

Однако, если я запустил приложение, отобразится только текст левой метки. Метка детали не видна.

enter image description here Я заглянул в отладчик и заметил, что текст detailLabel верен. Текст правильной метки действительно «мир». Однако метка не видна. enter image description here

Я провел немного исследований и в прошлом был a similar problem. Всякий раз, когда текст detailLabel был установлен в ноль, не было видно

Однако в моем примере, текст не ноль, он установлен на «Деталь»: enter image description here

Как я могу сделать правильный ярлык видимый?

+1

Правильно ли вы настроили ограничения? –

+1

Вы уже попробовали мое предложение относительно ограничений? Если посмотреть на свой скриншот, возможно, вы установили фиксированную ширину, что не помогло бы. – TwoStraws

+0

Добавление проблемы разрешено. Спасибо. – slashburn

ответ

-1
if (cell != nil) 
{ 
    cell = UITableViewCell(style: UITableViewCellStyle.Subtitle, 
       reuseIdentifier: reuseIdentifier) 
} 

добавить этот код под препятствовала сотовым = tableView.dequeueReusableCellWithIdentifier (cellIdentifier, forIndexPath: indexPath) эта строка кода.

+0

Он никогда не войдет в 'if', поскольку он отвлекается от самой раскадровки. Поэтому 'let cell = tableView.dequeueReusableCellWithIdentifier (cellIdentifier, forIndexPath: indexPath)' никогда не будет генерировать нуль –

Смежные вопросы