Updated
Dec 1, 2019 9:55 AM
Created
Dec 1, 2019 9:46 AM
Tags
SwiftUI.frameworkBookmark
Keywords
SwiftUIはViewを宣言してSwiftUIランタイムに実体を構築してもらうアプローチなので、 内部的にUIViewを使っていたとしてもその実態に触れることは原則できない。
Reactだと ref
としてDOM Elementが取得できるが、SwiftUIには存在しない。
そんなことをSwiftUIでも行いたいというニーズから生まれたOSSがこちら
次のようにModifierを通してListが使用する実体であるUITableViewをclosureの引数で取得できている。
List {
Text("Item 1")
Text("Item 2")
}
.introspectTableView { tableView in
tableView.separatorStyle = .none
}
感想としては、便利であり、現状必要不可決なものであるが、宣言的UIフレームワークのメリットとして、「なにをしたいか」だけを開発者に訪ね、「どうやって実現するか」を隠蔽できることがある。
これにより、SwiftUIランタイムは開発者へ変更を依頼することなく、UIパフォーマンスを向上させることができる。
とはいえ、SwiftUIの現状の機能ではこれはやるしか無いですよねー。