次のコードで背景色を黒に設定しようとしています
struct RuleList: View {[![enter image description here][1]][1]
private var presenter: ConfigurationPresenter?
@ObservedObject
private var viewModel: RowListViewModel
init(presenter: ConfigurationPresenter?, viewModel: RowListViewModel) {
self.presenter = presenter
self.viewModel = viewModel
}
var body: some View {
List(viewModel.configurations) { configuration in
RuleListRow(website: configuration.website).background(Color.black)
}.background(Color.black)
}
}
struct RuleListRow: View {
var website: Website
@State private var websiteState = 0
var body: some View {
VStack {
Text(website.id).foregroundColor(.white)
Picker(website.id, selection: $websiteState) {
Text("Permis").tag(0)
Text("Ascuns").tag(1)
Text("Blocat").tag(2)
}.pickerStyle(SegmentedPickerStyle()).background(Color.crimson)
}.listRowBackground(Color.green)
}
}
ビューは混合Uikit - Swiftuiストーリーボードでホストされているので、この特定のビューはホスティングコントローラに埋め込まれています
class ConfigurationHostingController: UIHostingController<RuleList> {
private var presenter: ConfigurationPresenter = ConfigurationPresenter()
required init?(coder: NSCoder) {
super.init(rootView: RuleList(presenter: presenter, viewModel: presenter.rowListViewModel))
}
}
私は.background
の組み合わせ、.listRowBackground(Color.black)
と.colorMultiply(.black)
を試しました
すべてのSwiftuiのList
_ UITableView
in iosによってバックアップされます。そのため、の背景色をtableview 変更する必要があります。しかし、Color
とUIColor
値がわずかに異なるため、UIColor
を取り除くことができます。
_struct ContentView: View {
init() {
UITableView.appearance().backgroundColor = .clear // tableview background
UITableViewCell.appearance().backgroundColor = .clear // cell background
}
var body: some View {
List {
,,,
}
.background(Color.yellow)
}
}
_
これで任意の背景(すべてを含むColor
s)を使用できます。
注意してくださいそれらの上下の白い領域は安全です、.edgesIgnoringSafeArea()
modifierを取り除くことができます。