Фон
У меня есть UITableView
с одной ячейкой.Внутри клетки находится UILabel
.Ячейка с именем PickerTableViewCell
получает свой пользовательский интерфейс из xib и добавляет его в свое подпредставление.Это сделано потому, что этот xib используется многими различными пользовательскими ячейками.
Проблема
Похоже, что когда эта ячейка освобождается от просмотра представлением таблицы, ее ширина выходит за пределыТаблица показывает ширину с правой стороны.
Вот xib с UILabel
, центрированным внутри ячейки, с последующим отображением на устройстве.Обратите внимание, что метка смещена относительно центра на устройстве:

Когда я перемещаю метку к самомусправа от клетки (label.trailing = pickerCell.trailing + 0
) он исчезает с правой стороны.Ниже показано, как это выглядит в xib, а затем на устройстве:

Когда я выровняюUILabel
слева от ячейки (label.leading = pickerCell.leading + 0
), он правильно выравнивается по левому краю устройства.
Вот как PickerTableViewCell
загружает xib:
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
// load the xib to associate with
let nib = Bundle.main.loadNibNamed("PickerTableViewCell", owner: nil, options: nil)
if let view = nib?.first as? UIView{
self.addSubview(view)
}
// ...
}
Вот как табличное представление регистрирует ячейку:
self.tableView.register(PickerTableViewCell.self, forCellReuseIdentifier: "pickerCell")
И, наконец, вот как она удаляется:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "pickerCell") as! PickerTableViewCell
return cell
}
Может ли кто-нибудь помочь понять, что происходит ??Почему моя ячейка выходит за пределы ширины представления таблицы?