2015-08-24 2 views
0

я обнаружил странное поведение, когда положить UITableView в UIViewController, которое представлено модально (Formsheet)Нечетные поведение при использовании UITableView в UIViewController, которое представлено модально

Fixed из-за ошибки кодирования: По некоторым причинам в представлении таблицы отображаются два набора меток в каждой ячейке , когда настроено только 1. Первый набор показывает исходные метки , а затем непосредственно над верхним является кодированный текст. См. Экран iPhone4s снимок.

На iPad вид в таблице белый, даже если таблица, ячейки и contentView установлены на clearColor. см. снимок экрана iPad.

IPAD снимок экрана:

enter image description here

iPhone снимок экрана:

enter image description here

Это тестовый код, чтобы увидеть, если это была ошибка в моем кодирования в моем главном приложении.

class TestTableView:UIViewController, UITableViewDelegate, UITableViewDataSource { 

@IBOutlet weak var testTable: UITableView! 
var data = ["One", "Two", "Three"] 

override func viewDidLoad() { 
    super.viewDidLoad() 
    self.testTable.delegate = self 
    self.testTable.dataSource = self 
} 

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    println(self.data.count) 
    return self.data.count 
} 

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    var cell = tableView.dequeueReusableCellWithIdentifier("testCell", forIndexPath: indexPath) as! testTableCell 
    cell.testTableCell!.text = self.data[indexPath.row] 
    return cell 
} 
} 

class testTableCell:UITableViewCell{ 

@IBOutlet weak var testTableCell: UILabel! 

override func layoutSubviews() { 
    super.layoutSubviews() 
} 
} 

Что-то интересное в том, что println (self.data.count) распечатывается 4 раза.

Может ли кто-нибудь увидеть проблему в моем коде? Или это ошибка?

Любая обратная связь будет полезно ..

+0

Вы должны использовать 'cell.testTableCell.text = xxx', а не' cell.textLabel! .text = xxx'. – Bannings

+0

При запуске приложения в симуляторе нажмите кнопку «Иерархия просмотра отладки» в Xcode под редактором кода. Это позволит вам видеть ваш интерфейс в слоях. Возможно, у вас есть один или несколько дубликатов элементов управления или что-то еще ... – MirekE

+0

@Bannings. Почувствуйте себя немного глупо, если вы этого не заметите. Проклятая автозаполняла меня. Ха-ха. Однако по-прежнему остается проблема, что на ipad фон таблицы по-прежнему остается белым. есть идеи? –

ответ

0

Я установил этот вопрос, но я не уверен, что это ошибка. По какой-то причине установка цвета фона Cell в IB не работает на iPad.

Изменение кода ячейки для этого сработало.

class testTableCell:UITableViewCell{ 

@IBOutlet weak var testTableCell: UILabel! 

override func layoutSubviews() { 
    super.layoutSubviews() 
    self.backgroundColor = UIColor.clearColor() 
} 
} 

Неужели ни у кого не было этой проблемы?

+0

Так что это похоже на ошибку, которая была введена в ios7. Глянь сюда. http://stackoverflow.com/questions/18901394/uitableview-uitableviewcell-challenge-with-transparent-background-on-ipadwwith. Я очень удивлен, что Apple допустила этот промах. –

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