Reload section method in swift 3?

帅比萌擦擦* 提交于 2019-11-29 11:06:26

问题


I have code written in objective c.I want to convert this code into the swift3 code.

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

After converting using online tool it gave me below code but it does not work

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

Please tell me how to do it ?


回答1:


Reload Section in Swift 3.0

i.e Reloading 0th section to 0th Section, Because tableview has defaultly one section that index is 0.

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

self.tableViewPostComments.reloadSections(IndexSet(integersIn: 0...0), with: UITableViewRowAnimation.top)

For Swift 4

self.tableViewPostComments.reloadSections(IndexSet(integersIn: 0...0), with: UITableView.RowAnimation.top)



回答2:


do like in swift3 for more information see this

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



回答3:


Note that after the conversion NSIndexSet became IndexSet. IndexSet is the Swift overlay to the Foundation framework for NSIndexSet:

The Swift overlay to the Foundation framework provides the IndexSet structure, which bridges to the NSIndexSet class and its mutable subclass, NSMutableIndexSet. The IndexSet value type offers the same functionality as the NSIndexSet reference type, and the two can be used interchangeably in Swift code that interacts with Objective-C APIs. This behavior is similar to how Swift bridges standard string, numeric, and collection types to their corresponding Foundation classes.

If you checked the description of reloadSections method signature, you will note that it is:

reloadSections(_ sections: IndexSet, with animation: UITableViewRowAnimation

sections parameter is IndexSet but NOT NSIndexSet anymore.

So, what you could do is:

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

OR I prefer to add IndexSet without even using the as IndexSet:

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


来源:https://stackoverflow.com/questions/40376728/reload-section-method-in-swift-3

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!