Вопрос по arrays, ios, uitableview, swift, reloaddata – Перезагрузить раздел метод в swift 3?

19

У меня есть код, написанный на цели C. Я хочу преобразовать этот код в код swift3.

[_expandableTableView reloadSections:[NSIndexSet indexSetWithIndex:gestureRecognizer.view.tag] withRowAnimation:UITableViewRowAnimationAutomatic];

После конвертации с помощью онлайн-инструмента он дал мне код ниже, но он не работает

expandableTableView.reloadSections(IndexSet(index: gestureRecognizer.view!.tag), with: .automatic)

Подскажите пожалуйста как это сделать?

"не работает" значит ...? что говорит ошибка? Ahmad F

Ваш Ответ

3   ответа
32

делать как вswift3 для получения дополнительной информации см.этот

expandableTableView.reloadSections(IndexSet(integer: gestureRecognizer.view!.tag), with: .automatic)
29

Перезагрузить раздел вSwift 3.0

Т.е. перезагрузка 0-го раздела в 0-й раздел, потому что в табличном представлении по умолчанию есть один раздел, индекс которого равен 0.

//let myRange: ClosedRange = 0...0

self.tableViewPostComments.reloadSections(IndexSet(integersIn: 0...0), with: UITableViewRowAnimation.top)
Спасибо, сэр, это помогает мне. Mandeep Singh
6

Обратите внимание, что после преобразованияNSIndexSet сталIndexSet. IndexSet Swift накладывается на основу основы дляNSIndexSet:

Наложение Swift на платформу Foundation предоставляет структуру IndexSet, которая связывает класс NSIndexSet и его изменяемый подкласс NSMutableIndexSet. Тип значения IndexSet предлагает те же функциональные возможности, что и ссылочный тип NSIndexSet, и они могут использоваться взаимозаменяемо в коде Swift, который взаимодействует с API-интерфейсами Objective-C. Это поведение аналогично тому, как Swift соединяет стандартные строковые, числовые типы и типы коллекций с соответствующими им базовыми классами.

Если вы проверили описаниеreloadSections Подпись метода, вы заметите, что это:

reloadSections (_ section: IndexSet, с анимацией: UITableViewRowAnimation

sections параметрIndexSet но нетNSIndexSet больше.

Итак, что вы могли бы сделать:

_expandableTableView.reloadSections(NSIndexSet(index: gestureRecognizer.view.tag) as IndexSet, with: .automatic)

ИЛИ Я предпочитаю добавлять IndexSet, даже не используяas IndexSet:

_expandableTableView.reloadSections(IndexSet(integer: gestureRecognizer.view!.tag), with: .automatic)
смущенный. Значит ли это, что вы не можете просто сделать:_expandableTableView.reloadSections([0]), with: .automatic) <- Это должно перезагрузить только раздел0 Honey

Похожие вопросы