#ios #swift #xcode #uitableview
Вопрос:
Я хочу добавить интервал между несколькими пользовательскими ячейками. У меня есть несколько разделов, содержащих ячейки.
У меня есть класс ViewController для UITableView, в котором я указываю информацию:
struct customCell {
let title: String
}
func configure() {
models.append(Section(title: "", options: [
customCell(title: "Sounds"){
},
}
И у меня есть другой класс UITableViewCell, в котором я использую метод layoutSubviews() :
override func layoutSubviews() {
super.layoutSubviews()
contentView.frame = contentView.frame.inset(by: UIEdgeInsets(top: 0, left: 0, bottom: 10, right: 0))
Я вижу другие решения на этом веб-сайте, где они получают интервал с помощью UIEdgeInsets.
Я попытался использовать метод layoutSubviews (), но это не сработало, он перемещает содержимое ячейки вверх вместо добавления пробелов между ячейками:
Когда я использую все вставки:
contentView.frame = contentView.frame.inset(by: UIEdgeInsets(top:15, left: 15, bottom: 15, right: 15))
Содержимое проникает внутрь со всех сторон:
Что я делаю не так?
Комментарии:
1. Вы не можете добавить пространство между ячейками. Но вы можете легко сделать так, чтобы это выглядело так, как будто между ячейками есть пространство.
Ответ №1:
Попробуйте это:
override func layoutSubviews() {
super.layoutSubviews()
contentView.frame = contentView.frame.inset(by: UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10))
}
И другое решение может заключаться в том, что если вы используете UIView в своем представлении содержимого и объявляете другие объекты в этом представлении, оно будет вести себя так, как будто вы добавляете пространство между ячейками.
Комментарии:
1. Хорошо! Спасибо, я нашел, где ошибся
2. С вашим кодом у меня та же проблема, содержимое теперь продвигается внутрь со всех сторон.
Ответ №2:
Попробуйте установить нагативное значение для вставки, например так:
override func layoutSubviews() {
super.layoutSubviews()
contentView.frame = contentView.frame.inset(by: UIEdgeInsets(top: 0, left: 0, bottom: -10, right: 0))
}
Комментарии:
1. Я тоже пробовал это, и, к сожалению, это не работает.