Читать IB UITableViewCell идентификатор повторного использования в XIB? - PullRequest
0 голосов
/ 06 октября 2018

У меня есть XIB для разработки UITableViewCell.

Я всегда регистрирую XIB, а затем удаляю ячейки, используя идентификатор повторного использования, как обычно.Имеет ли настройка Attributes Inspector > Table View Cell > Identifier какое-либо назначение при использовании XIB?

1 Ответ

0 голосов
/ 06 октября 2018

Код не может прочитать настройки внутри пера.Если вы создаете ячейку раскадровки как ячейку прототипа, вы сами должны одинаково написать идентификатор повторного использования в кончике и идентификатор повторного использования в своем коде, и это все.

Если вам это не нравитсязарегистрируйте отдельный перо для ячейки вместо того, чтобы получать прототип ячейки из раскадровки.Это архитектура, которую я предпочитаю в любом случае.Вы просто делаете идентификатор повторного использования константой в своем коде, в одном месте, и все готово.Вам не нужно указывать идентификатор повторного использования в кончике.

Правильная типичная архитектура для получения ваших ячеек из отдельного пера выглядит следующим образом:

class RootViewController : UITableViewController {
    let cellID = "Cell"
    override func viewDidLoad() {
        super.viewDidLoad()
        self.tableView.register(UINib(nibName:"MyCell", bundle:nil),    
            forCellReuseIdentifier: self.cellID) // *
    }
    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: self.cellID, 
            for: indexPath) as! MyCell
        // ...
    }
}

Идентификатор повторного использования в пине совершенно не имеет значения.

...