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

<p>у меня есть подкласс <code>uitableviewcontroller</code> с разделами. разделы отображаются со стилем по умолчанию (без скругленных углов). как я могу установить стиль tableview для группировки в коде? я не использую interface builder для этого, поэтому мне нужно что-то вроде</p><pre><code>[self.tableview setgroupedstyle] </code></pre><p>я искал переполнение стека, но не смог найти ответ.</p>

<p>если я понимаю, что вы имеете в виду, вы должны инициализировать свой контроллер с этим стилем. что-то вроде:</p><pre><code>mytvcontoller = [[uitableviewcontroller alloc] initwithstyle:uitableviewstylegrouped]; </code></pre>

<p>вы можете сделать следующее:</p><pre><code>uitableview *mytable = [[uitableview alloc] initwithframe:cgrectzero style:uitableviewstylegrouped]; </code></pre><p>свифт 3:</p><pre><code>let tableview = uitableview.init(frame: cgrect.zero, style: .grouped) </code></pre>

<p>я даю вам свое решение, я работаю в "режиме xib", вот код подкласса uitableviewcontroller:</p><pre><code>-(id)initwithcoder:(nscoder *)adecoder { self = [super initwithstyle:uitableviewstylegrouped]; return self; } </code></pre>

<p>ниже код работал для меня, я также использую класс uitableview</p><pre><code>- (id)initwithstyle:(uitableviewstyle)style { self = [super initwithstyle:uitableviewstylegrouped]; if (self) { } return self; } </code></pre>

<p>установка это не так сложно, как указано в вопросе. на самом деле все довольно просто. попробуйте это на раскадровке.</p><p> <a href="https://i.stack.imgur.com/xdbz6.gif"> <img src="https://i.stack.imgur.com/xdbz6.gif" alt="enter image description here"> </a> </p>

<p>если вы наследуете uitableviewcontroller, вы можете просто снова запустить tableview.</p><p>цель c:</p><pre><code>self.tableview = [[uitableview alloc] initwithframe:cgrectzero style:uitableviewstylegrouped]; </code></pre><p>свифт 4: </p><pre><code>self.tableview = uitableview(frame: cgrect.zero, style: .grouped) </code></pre>

<p>вы также можете сделать это, если хотите использовать его в подклассе, который вы уже создали в отдельном файле swift (возможно, не на 100% правильно, но работает)</p><pre><code>override init(style: uitableviewstyle) { super.init(style: style) uitableviewstyle.grouped } required init?(coder adecoder: nscoder) { fatalerror("init(coder:) has not been implemented") } </code></pre><p>теперь у вас есть appdelegate.swift, вы можете позвонить:</p><pre><code>let settingscontroller = settingsviewcontroller(style: .grouped) </code></pre>

<p><strong> swift 4+: </strong></p><pre><code>let mytableviewcontroller = uitableviewcontroller(style: .grouped) </code></pre>

<p>для установки сгруппированного стиля в самом пользовательском интерфейсе: -выберите tableview, затем измените «стиль» (в инспекторе атрибутов)) с обычного на grouped.</p>

<p><strong> swift 4 </strong> </p><p><strong> использование обычного tableview </strong></p><pre><code>let tableview = tableview(frame: .zero, style: .grouped) </code></pre><p><strong> использование tpkeyboardavoidingtableview </strong> </p><pre><code>let tableview = tpkeyboardavoidingtableview(frame: .zero, style: .grouped) </code></pre>

<p>вы можете сделать это с помощью раскадровки/xib также</p><ol> <li>перейти к раскадровке -> выберите ваш viewcontroller -> выберите таблицу</li> <li>выберите свойство «стиль» в конструкторе интерфейса</li> <li>выберите «сгруппированный»</li> <li>готово</li> </ol>

<p><strong> swift 4 </strong></p><p>если вы не хотите использовать раскадровку, это может помочь.</p><p>вы можете добавить табличное представление и установить свойства в закрытии:</p><pre><code>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 }() </code></pre><p>затем добавьте в подпредставление и установите ограничения.</p>

<p>если у вас есть один tableview для нескольких таблиц, и одна из этих таблиц сгруппирована, а другая - простая, то вы можете смоделировать простой стиль с помощью функции из uitableviewdelegate:</p><pre><code>override func tableview(tableview: uitableview, heightforheaderinsection section: int) -> cgfloat { return cgfloat.min } </code></pre>