You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SwiftUI中为系统及资源图片应用原生ShapeStyle的可行性问题

在SwiftUI中为系统图片和资源图片应用原生ShapeStyle的可行性分析

在SwiftUI里尝试给系统图片和本地资源图片应用原生ShapeStyle时,会遇到兼容性问题:系统图片默认采用.template渲染模式,当使用.clear作为样式来还原图片原生外观时,会直接导致系统图片消失,因此这种方案不可行。

问题复现代码

import SwiftUI

struct SwiftUIView8: View {
    @State private var hasStyle: Bool = true
    
    var body: some View {
        VStack {
            /// 本地资源图片
            Image("envelope.square")
                .applyStyle(hasStyle)
            /// 系统图片
            Image(systemName: "book")
                .applyStyle(hasStyle)
                .font(.title.weight(.bold))
            Toggle("应用样式", isOn: $hasStyle)
        }
        .padding()
    }
}

private extension Image {
    func applyStyle(_ hasStyle: Bool) -> some View {
        self.renderingMode(hasStyle ? .template : .original)
            .foregroundStyle(hasStyle ? .green : .clear /* 还原原生样式 */)
    }
}

#Preview {
    SwiftUIView8()
}

内容的提问来源于stack exchange,提问作者Amirca

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 13:32:03