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

如何在SwiftUI Canvas中开启或关闭抗锯齿功能

在SwiftUI Canvas中开启/关闭抗锯齿的方法

在SwiftUI的Canvas组件中,你需要先将传入的GraphicsContext转换为CGContext实例,再通过设置其属性来控制抗锯齿效果:

关闭抗锯齿示例

struct CanvasView: View {
    var body: some View {
        Canvas { context, size in
            // 获取CGContext实例
            let cgContext = context.cgContext
            // 关闭抗锯齿
            cgContext.shouldAntialias = false
            
            // 示例绘制:带锐利边缘的椭圆
            context.fill(Path(ellipseIn: CGRect(x: 20, y: 20, width: 100, height: 100)), with: .red)
        }
    }
}

开启抗锯齿示例

抗锯齿默认是开启状态,若之前手动关闭过,可通过以下方式重新开启:

struct CanvasView: View {
    var body: some View {
        Canvas { context, size in
            let cgContext = context.cgContext
            // 开启抗锯齿
            cgContext.shouldAntialias = true
            
            // 示例绘制:带平滑边缘的椭圆
            context.fill(Path(ellipseIn: CGRect(x: 20, y: 20, width: 100, height: 100)), with: .blue)
        }
    }
}

额外说明

  • shouldAntialias是CGContext的布尔属性,直接决定绘制时是否应用抗锯齿
  • 关闭抗锯齿适合绘制像素风格、需要锐利边缘的图形,避免边缘模糊
  • 日常绘制场景下无需手动开启,系统默认已启用抗锯齿

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 03:03:10