Добавление разделительной линии под настраиваемую ячейку табличного представления в UITableViewCell - PullRequest
0 голосов
/ 20 февраля 2020

Я пытаюсь добавить разделитель в мою ячейку uitableview. Я попробовал это.

let separator = UIView(frame: CGRect(x: 0, y: 0, width: view.frame.width, height: 8.0))
cell.contentView.addSubview(separator)

Но это добавляет представление разделителя сверху ячейки, мне нужно его снизу.

Я также пробовал таким образом.

let view = UIView()
view.translatesAutoresizingMaskIntoConstraints = false
cell.contentView.addSubview(view)
view.leadingAnchor.constraint(equalTo: cell.contentView.leadingAnchor).isActive = true
view.trailingAnchor.constraint(equalTo: cell.contentView.trailingAnchor).isActive = true
view.heightAnchor.constraint(equalToConstant: 8.0).isActive = true
view.topAnchor.constraint(equalTo: cell.contentView.bottomAnchor).isActive = true

Но это не дает мне частой ошибки предка. и я не хочу использовать раскадровку. Мне это нужно, потому что я использую одну и ту же ячейку в разных местах, где-то мне нужен разделитель, где-то нет. что мне делать?

Ответы [ 2 ]

1 голос
/ 20 февраля 2020

Изменить ограничение для этого

view.topAnchor.constraint(equalTo: cell.contentView.bottomAnchor).isActive = true

на

view.bottomAnchor.constraint(equalTo: cell.contentView.bottomAnchor).isActive = true

лучше создать строку внутри init пользовательской ячейки и сделать ее свойством

let view = UIView() 

затем управляйте своим состоянием с cellForRowAt

view.isHidden = true/false
0 голосов
/ 20 февраля 2020

Вот лучший способ использовать разделители:

Сначала включите разделители в вашем UITableView с помощью:

myTableView.separatorStyle = .singleLine

Затем в вашей функции cellForRowAt:

// Create your cell
// if you want to show the separator then 
cell.separatorInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
// if you want to hide the separator then
self.separatorInset = UIEdgeInsets(top: 0, left: UIScreen.main.bounds.width, bottom: 0, right: 0)

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

Также вы можете изменить цвет или вставки разделителя, используя другие свойства, без использования раскадровок или сгибов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...