我的应用包含TabView
内几个不同标签上的几个视图。这些视图创建自己的NavigationView
。不幸的是,TabView
的存在导致它们的颜色和透明度与应用程序的状态栏(不再与导航栏一致)发生冲突。
使用以下代码可以轻松地在示例应用程序中重现这一点。
struct ContentView: View {
var body: some View {
TabView {
NavView()
}
}
}
struct NavView: View {
var body: some View {
NavigationView {
List {
ForEach(0..<10, id: \.self) { _ in
Section(header: Text("Foo")) {
Text("Bar")
}
}
}
.listStyle(GroupedListStyle())
.navigationBarTitle("Foobar")
}
}
}
我正在使用分组列表样式使样式更改更明显,但是默认样式是相同的。
是否有SwiftUI API可以访问状态栏样式?还是可能有其他解决方法?
答案 0 :(得分:5)
根据Apple的文档,edgesIgnoringSafeArea(_:)
应该应用于TabView
:
https://developer.apple.com/documentation/swiftui/vsplitview/3288813-edgesignoringsafearea
将视图扩展到指定边缘的安全区域之外。
struct ContentView: View {
var body: some View {
TabView {
NavView()
}.edgesIgnoringSafeArea(.top)
}
}
答案 1 :(得分:0)
由于某种原因,它对我来说无法正常工作。情况是在没有from multiprocessing import Pool
import numpy
def play_game(neural_net):
foo = [[0 for i in range(3)] for j in range(3)]
return neural_net.predict(numpy.array([foo]))
def make_net():
from keras import Input, Model
from keras.layers import Dense
from keras.optimizers import Adam
from tensorflow import nn
input = Input((3, 3))
output = Dense(1)(input)
model = Model(inputs=input, outputs=[output])
adam = Adam(0.2)
model.compile(adam, [nn.softmax_cross_entropy_with_logits])
model.summary()
return model
def main():
neural_net = make_net()
with Pool() as p:
training_data = p.map(play_game, [neural_net for i in range(10)], 3)
print(training_data)
if __name__ == '__main__':
main()
仅适用于模拟器而不适用于设备的情况下可以正常工作。反之亦然。
创建了一个小的修改器来修复它。
edgesIgnoringSafeArea(_:)