it-swarm.com.ru

Как я могу установить UITableView для сгруппированного стиля

У меня есть подкласс UITableViewController с разделами. Разделы отображаются со стилем по умолчанию (без скругленных углов). Как я могу установить стиль TableView для группировки в коде? Я не использую Interface Builder для этого, поэтому мне нужно что-то вроде

[self.tableView setGroupedStyle]

Я искал переполнение стека, но не смог найти ответ.

76
nevan king

Если я понимаю, что вы имеете в виду, вы должны инициализировать свой контроллер с этим стилем. Что-то вроде:

myTVContoller = [[UITableViewController alloc] initWithStyle:UITableViewStyleGrouped];
95
Dimitris

Вы можете сделать следующее:

UITableView *myTable = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped];

Свифт 3:

let tableView = UITableView.init(frame: CGRect.zero, style: .grouped)
119
Lior

Я даю вам свое решение, я работаю в "режиме XIB", вот код подкласса UITableViewController:

-(id)initWithCoder:(NSCoder *)aDecoder
{
    self = [super initWithStyle:UITableViewStyleGrouped];
    return self;
}
19
Thomas Decaux

Ниже код работал для меня, я также использую класс UITableview

- (id)initWithStyle:(UITableViewStyle)style
{
     self = [super initWithStyle:UITableViewStyleGrouped];

     if (self)
    {

     }
    return self;
}
13
Gagan Joshi

Установка это не так сложно, как указано в вопросе. На самом деле все довольно просто. Попробуйте это на раскадровке.

 enter image description here

5
Fangming

Если вы наследуете UITableViewController, вы можете просто снова запустить tableView.

Цель C:

self.tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped];

Свифт 4: 

self.tableView = UITableView(frame: CGRect.zero, style: .grouped)
5
DZoki019

Вы также можете сделать это, если хотите использовать его в подклассе, который вы уже создали в отдельном файле Swift (возможно, не на 100% правильно, но работает)

override init(style: UITableViewStyle) {
    super.init(style: style)
    UITableViewStyle.Grouped
}

required init?(coder aDecoder: NSCoder) {
    fatalError("init(coder:) has not been implemented")
}

Теперь у вас есть appdelegate.Swift, вы можете позвонить:

let settingsController = SettingsViewController(style: .Grouped)
2
Jordi Bruin

Swift 4+:

let myTableViewController = UITableViewController(style: .grouped)
2
Juan Boero

Для установки сгруппированного стиля в самом пользовательском интерфейсе: -Выберите TableView, затем измените «стиль» (в инспекторе атрибутов)) с обычного на Grouped.

2
Zeesha

Swift 4  

Использование обычного TableView

let tableView = TableView(frame: .zero, style: .grouped)

Использование TPKeyboardAvoidingTableView  

let tableView = TPKeyboardAvoidingTableView(frame: .zero, style: .grouped)
2
Md. Ibrahim Hassan

Вы можете сделать это с помощью раскадровки/XIB также

  1. Перейти к раскадровке -> Выберите ваш viewController -> Выберите таблицу
  2. Выберите свойство «Стиль» в конструкторе интерфейса
  3. Выберите «Сгруппированный»
  4. Готово
1
Anny

Swift 4

если вы не хотите использовать раскадровку, это может помочь.

вы можете добавить табличное представление и установить свойства в закрытии:

lazy var tableView: UITableView = {
        let tableView = UITableView(frame: .zero, style: .grouped)

        tableView.backgroundColor = UIColor(named: Palette.secondaryLight.rawValue)
        tableView.rowHeight = 68
        tableView.separatorStyle = .none
        tableView.translatesAutoresizingMaskIntoConstraints = false
        return tableView
    }()

затем добавьте в подпредставление и установите ограничения.

0
moraei

Если у вас есть один TableView для нескольких таблиц, и одна из этих таблиц сгруппирована, а другая - простая, то вы можете смоделировать простой стиль с помощью функции из UITableViewDelegate:

override func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {   
    return CGFloat.min
}
0
Illya Krit