ios - ¿Volver a cargar el método de la sección en swift 3?
arrays uitableview (3)
Tengo un código escrito en el objetivo c. Quiero convertir este código en el código swift3.
[_expandableTableView reloadSections:[NSIndexSet indexSetWithIndex:gestureRecognizer.view.tag] withRowAnimation:UITableViewRowAnimationAutomatic];
Después de convertir utilizando la herramienta en línea, me dio el código siguiente, pero no funciona
expandableTableView.reloadSections(IndexSet(index: gestureRecognizer.view!.tag), with: .automatic)
Por favor, dime cómo hacerlo ?
Recargar la sección en Swift 3.0
es decir, volver a cargar la sección 0 a la sección 0, ya que la vista de tabla tiene por defecto una sección que el índice es 0.
//let myRange: ClosedRange = 0...0
self.tableViewPostComments.reloadSections(IndexSet(integersIn: 0...0), with: UITableViewRowAnimation.top)
Para Swift 4
self.tableViewPostComments.reloadSections(IndexSet(integersIn: 0...0), with: UITableView.RowAnimation.top)
Tenga en cuenta que después de la conversión, NSIndexSet
convirtió en IndexSet
. IndexSet es la superposición Swift del marco de Foundation para NSIndexSet :
La superposición de Swift al marco de Foundation proporciona la estructura IndexSet, que se une a la clase NSIndexSet y su subclase mutable, NSMutableIndexSet. El tipo de valor IndexSet ofrece la misma funcionalidad que el tipo de referencia NSIndexSet, y los dos pueden usarse indistintamente en el código Swift que interactúa con las API de Objective-C. Este comportamiento es similar al modo en que Swift vincula los tipos estándar de serie, numéricos y de colección a sus clases de Foundation correspondientes.
Si verificó la descripción de la firma del método reloadSections
, notará que es:
reloadSections (_ secciones: IndexSet, con animación: UITableViewRowAnimation
sections
parámetro de las sections
es IndexSet
pero NO NSIndexSet
más.
Entonces, lo que podrías hacer es:
_expandableTableView.reloadSections(NSIndexSet(index: gestureRecognizer.view.tag) as IndexSet, with: .automatic)
O prefiero agregar IndexSet sin siquiera utilizar el as IndexSet
:
_expandableTableView.reloadSections(IndexSet(integer: gestureRecognizer.view!.tag), with: .automatic)
haz clic en swift3 para más información, mira this
expandableTableView.reloadSections(IndexSet(integer: gestureRecognizer.view!.tag), with: .automatic)