在Assets.xcassets
中,可以添加其他图像,这些图像将根据外观自动切换。这对于静态图像效果很好,但是我试图弄清楚如何对下载的图像执行此操作。
有没有办法在初始化中设置Image
的暗模式版本,还是SwiftUI中有一个函数可以让您检测当前外观是否暗,以便可以使用其他图像URL。服务?
答案 0 :(得分:17)
您可以在任何视图中使用public class ParameterizedTests: IClassFixture<TFixture>
{
public ParameterizedTests(TFixture fixture)
{
}
public bool IsOddNumber(int number)
{
return number % 2 != 0;
}
[Theory]
[ClassData(typeof(TestDataGenerator))]
public void AllNumbers_AreOdd_WithClassData(int a, int b, int c, int d)
{
Assert.True(IsOddNumber(a));
Assert.True(IsOddNumber(b));
Assert.True(IsOddNumber(c));
Assert.True(IsOddNumber(d));
}
}
来获取设备是处于暗模式(@Environment(\.colorScheme) var colorScheme: ColorScheme
)还是处于亮模式(.dark
)。使用该信息,您可以有条件地决定使用三元运算符轻松显示哪个图像。
例如,如果您有一个名为“ lightImage”的图像(用于亮模式)和一个“ darkImage”(用于暗模式):
.light
答案 1 :(得分:2)
有一个@Environment
变量。
@Environment (\.colorScheme) var colorScheme:ColorScheme
这是我用它填充空白矩形的方法:
Rectangle().fill(Color.fillColor(for: colorScheme))