SwiftUI Widget iOS 14 渐变问题

Max*_*lov 7 swift widgetkit swiftui ios14

我想使用自定义颜色为我的小部件创建渐变颜色。而且我只使用两种颜色时出现问题,结果没有应用一种颜色,而是背景变成绿色!

struct WeatherWidgetMediumView: View {
    
    var gradient: LinearGradient {
        LinearGradient(
            gradient: Gradient(
                colors:
                [
                    Color(red: 96.0/255.0, green: 171.0/255.0, blue: 239.0/255.0),
                    Color(red: 163.0/255.0, green: 230.0/255.0, blue: 244.0/255.0)
                ]),
            startPoint: .top,
            endPoint: .bottom)
    }
    
    var body: some View {
        GeometryReader { geo in
            HStack(alignment: .center) {
                Divider().background(Color.black).padding(.vertical, 16.0).opacity(0.1)
            }
        }
        .background(gradient)
    }
}
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

但是如果我再添加一种颜色,它看起来很棒。

struct WeatherWidgetMediumView: View {
    let weather: Weather
    
    var gradient: LinearGradient {
        LinearGradient(
            gradient: Gradient(
                colors:
                [
                    Color(red: 96.0/255.0, green: 171.0/255.0, blue: 239.0/255.0),
                    Color(red: 96.0/255.0, green: 171.0/255.0, blue: 239.0/255.0),
                    Color(red: 163.0/255.0, green: 230.0/255.0, blue: 244.0/255.0)
                ]),
            startPoint: .top,
            endPoint: .bottom)
    }
    
    var body: some View {
        GeometryReader { geo in
            HStack(alignment: .center) {
                Divider().background(Color.black).padding(.vertical, 16.0).opacity(0.1)
            }
            Spacer()
        }
        .background(gradient)
    }
}
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

UPD:使用此问题创建一个 GitHub 项目

https://github.com/Maxim-Zakopaylov/widgetKitGradientIssue

小智 1

我在我的应用程序中遇到了确切的问题,我通过在背景修饰符后添加 .blendMode(.darken) 来修复它。我希望这也能解决你的问题。