Objective Cで記述されたコードがあります。このコードをSwift3コードに変換したいと思います。
[_expandableTableView reloadSections:[NSIndexSet indexSetWithIndex:gestureRecognizer.view.tag] withRowAnimation:UITableViewRowAnimationAutomatic];
オンラインツールを使用して変換した後、以下のコードを教えてくれましたが、機能しません
expandableTableView.reloadSections(IndexSet(index: gestureRecognizer.view!.tag), with: .automatic)
方法を教えてください。
Swift 3.のセクションを再読み込みします
つまり、tableviewにはデフォルトでインデックスが0のセクションが1つあるため、0番目のセクションを0番目のセクションにリロードします。
//let myRange: ClosedRange = 0...0
self.tableViewPostComments.reloadSections(IndexSet(integersIn: 0...0), with: UITableViewRowAnimation.top)
Swift 4の場合
self.tableViewPostComments.reloadSections(IndexSet(integersIn: 0...0), with: UITableView.RowAnimation.top)
詳細については、Swift3のようにしてください this を参照してください
expandableTableView.reloadSections(IndexSet(integer: gestureRecognizer.view!.tag), with: .automatic)
変換後にNSIndexSet
がIndexSet
になったことに注意してください。 IndexSet は、Swift Foundationフレームワークへのオーバーレイ NSIndexSet :
FoundationフレームワークへのSwiftオーバーレイは、NSIndexSetクラスとその可変サブクラスであるNSMutableIndexSetにブリッジするIndexSet構造を提供します。IndexSet値型は、NSIndexSet参照型と同じ機能を提供します。 2つは、Objective-C APIと対話するSwiftコードで交換可能に使用できます。この動作は、Swift標準文字列、数値、およびコレクション型をブリッジする方法に似ています対応するFoundationクラスへ。
reloadSections
メソッドシグネチャの説明を確認した場合、次のことに注意してください。
reloadSections(_セクション:IndexSet、アニメーションあり:UITableViewRowAnimation
sections
パラメーターはIndexSet
ですが、NSIndexSet
ではありません。
だから、あなたができることは:
_expandableTableView.reloadSections(NSIndexSet(index: gestureRecognizer.view.tag) as IndexSet, with: .automatic)
または、as IndexSet
を使用せずにIndexSetを追加したい:
_expandableTableView.reloadSections(IndexSet(integer: gestureRecognizer.view!.tag), with: .automatic)