首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

以编程方式绘制的圆不会显示为SwiftUI

,这是因为SwiftUI是苹果公司推出的一种用户界面框架,主要用于构建iOS、macOS、watchOS和tvOS应用程序的用户界面。它提供了一种声明式的方式来描述和构建用户界面,而不是直接操作底层的绘图操作。

在SwiftUI中,可以使用Circle视图来绘制圆形,但是需要注意的是,这种方式只是在界面上显示一个圆形的视图,并不是通过编程方式绘制的。编程方式绘制圆形需要使用Core Graphics框架或者Metal框架等底层图形库来实现。

对于以编程方式绘制圆形的需求,可以使用Core Graphics框架中的CGContext来实现。下面是一个简单的示例代码:

代码语言:txt
复制
import UIKit

func drawCircle() {
    let renderer = UIGraphicsImageRenderer(size: CGSize(width: 100, height: 100))
    let image = renderer.image { context in
        let circleRect = CGRect(x: 0, y: 0, width: 100, height: 100)
        context.cgContext.setFillColor(UIColor.red.cgColor)
        context.cgContext.fillEllipse(in: circleRect)
    }
    
    let imageView = UIImageView(image: image)
    // 将imageView添加到视图层级中进行显示
}

在上述代码中,我们使用UIGraphicsImageRenderer创建了一个图像渲染器,并通过image方法获取渲染后的图像。然后,我们使用CGContext的绘图方法来绘制一个红色的圆形,并将其填充到指定的矩形区域内。最后,将渲染后的图像显示在界面上。

需要注意的是,上述代码是基于UIKit框架的,如果是在macOS上进行绘制,可以使用AppKit框架中的类似方法来实现。

总结起来,以编程方式绘制圆形需要使用底层的图形库来实现,而不是通过SwiftUI来实现。在具体的应用场景中,可以根据需求选择合适的图形库进行绘制。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

SwiftUI:自定义 Shape 使用 InsettableShape 协议实现向内绘制边框

如果创建的形状没有特定大小,它将自动扩展以占据所有可用空间。...您在这里看到的是SwiftUI在形状周围绘制边框的方式的副作用。如果您递给某人一个圆的铅笔轮廓,并要求他们用粗笔在该圆上画线,他们将绘制出该圆的精确线——大约一半的笔在该线的内部,一半在该线的外部。...这就是SwiftUI为我们所做的,但是当形状到达屏幕边缘时,则意味着边框的外部最终超出了屏幕边缘。...:我们的所有边框都是可见的,因为Swift在圆的内部绘制而不是将圆作为绘制的中心。...该形状可以嵌入(向内减小)一定距离以产生另一个形状。它产生的插图形状可以是任何其他类型的插图形状,但实际上,它应该是一个有相同形状的较小的矩形。

1.8K40

好看的图表怎么画,看完这几个 API 你就会了

先来一波概念 在正式的开始编码之前,我们先来熟悉一下 SwiftUI 提供的一些绘制图形和图形特效的 API 吧!...SwiftUI 提供了 Path 这个结构体,让我们可以绘制 2D 的图形,所以绘制一个圆的代码如下: var path: Path { var path = Path() path.addArc...Path 是 SwiftUI 提供的一个用于绘制 2D 图形的结构体,我称之为路径。...由于饼状图显示给用户的是几大块数据的比较,所以传入它的数据一定是数组,那我们就可以用 for 循环的方式来依次去绘制,代码如下: var body: some View { GeometryReader...,有点类似 PS 里的钢笔工具,用到的相应 API 为: ublic mutating func addQuadCurve(to p: CGPoint, control cp: CGPoint) 使用方式如代码所示

3K10
  • 干货 | 关于SwiftUI,看这一篇就够了

    SwiftUI是一种新颖的构建UI方式和全新的编码风格,本文以通俗易懂的语言,从Swift 5.1语法新特性和SwiftUI的优势方面进行分享,希望对热爱移动端的同学有一定的帮助,让大家尽可能快速、全面和透彻地理解...方法重构UI,绘制界面,在绘制过程中会自动比较视图中各个属性是否有变化,如果发生变化,便会更新对应的视图,避免全局绘制,资源浪费。...作为SwiftUI的新特点之一,FunctionBuilder倾向于目前流行的编程方式,开发者能够使用基于DSL的架构,像SwiftUI,而不用去考虑具体的实现细节,因为构建器实现的就是一个DSL本身。...目前,组件化编程是主流的开发方式,SwfitUI带来了全新的功能--可以构建可重用的组件,采用了声明式编程思想。...同时SwiftUI中也是支持frame设定,但也不会像UIKit中那样作用于当前元素,在内部也是形成一个虚拟的View来承载frame设定,在布局过程中进行frame计算最终显示出想要的结果。

    10.5K11

    使用SwiftUI创建万花尺

    为了完成一些真正意义上的绘图工作,我将带您通过创建一个简单的带SwiftUI的spirograph。...虚拟笔与外圆中心的距离。 要画多少轮盘赌。这是可选的,但我认为它确实有助于显示算法工作时发生的情况。...我们所有的输入以整数形式提供时效果最好,但是在绘制轮盘赌时,我们需要使用CGFloat,因此我们还将创建输入的CGFloat副本。...这是核心算法,但我们要做两个小的改变:我们要分别将绘图矩形的一半宽度或高度添加到X和Y,使其在绘图空间中居中;如果θ为0,即如果这是轮盘中绘制的第一个点,我们将我们的路径中调用move(to:)而不是addLine...你所看到的其实只是一种轮盘赌形式,被称为 hypotrochoid——通过对算法的小调整,你可以生成 epitrochoids 等,它们以不同的方式很漂亮。

    1.2K10

    Ask Apple 2022 与 SwiftUI 有关的问答(下)

    Ask Apple 为开发者与苹果工程师创造了在 WWDC 之外进行直接交流的机会。本文对本次活动中与 SwiftUI 有关的一些问答进行了整理,并添加了一点个人见解。本文为下篇。...在 SwiftUI 4 中,可以使用 .scrollContentBackground(.hidden) 隐藏列表的默认背景searchableQ:是否有办法在.searchable() 修饰器中以编程方式设置搜索字段的焦点...A:你可以使用 dismissSearch 环境属性以编程方式取消搜索字段。目前还没有 API 可以程序化地将焦点转至搜索字段。...另外,可以考虑为原始图片创建缩略图,进一步提高显示的效率。...我正以聊天室、Twitter、博客留言等讨论为灵感,从中选取有代表性的问题和技巧制作成 Tips ,发布在 Twitter 上。

    14.8K30

    使用 SwiftUI 创建万花尺

    为了完成一些真正意义上的绘图工作,我将带您通过创建一个简单的带 SwiftUI 的 spirograph。...虚拟笔与外圆中心的距离。 要画多少轮盘赌。这是可选的,但我认为它确实有助于显示算法工作时发生的情况。...我们所有的输入以整数形式提供时效果最好,但是在绘制轮盘赌时,我们需要使用CGFloat,因此我们还将创建输入的CGFloat副本。...这是核心算法,但我们要做两个小的改变:我们要分别将绘图矩形的一半宽度或高度添加到X和Y,使其在绘图空间中居中;如果 θ 为 0,即如果这是轮盘中绘制的第一个点,我们将我们的路径中调用move(to:)而不是...你所看到的其实只是一种轮盘赌形式,被称为 hypotrochoid ——通过对算法的小调整,你可以生成 epitrochoids 等,它们以不同的方式很漂亮。

    67710

    SwiftUI:特殊效果 - 模糊,混合模式等

    SwiftUI使我们能够出色地控制视图的呈现方式,包括应用实时模糊,混合模式,饱和度调整等功能。 混合模式使我们可以控制一个视图在另一个视图上的渲染方式。...每个像素具有RGBA的颜色值,范围从0(没有该颜色)到1(所有颜色),因此所得的最高颜色为1x1,最低的颜色为0x0。...对纯色使用乘法会产生一种非常常见的色调效果:黑色保持黑色(因为它们的颜色值为0,所以无论您将顶部乘以0都将产生0),而较浅的颜色会变成各种阴影着色。...例如,我们可以在堆栈内部的各个位置绘制三个圆,然后使用滑块控制其大小和重叠: struct ContentView: View { @State private var amount: CGFloat...取而代之的是,您会看到SwiftUI的自适应颜色旨在在黑暗和明亮模式下看起来都不错,因此它们是红色,绿色和蓝色的自定义混合色,而不是纯色。

    2.6K60

    在SwiftUI中使用UIKit视图

    在相当长的时间中开发者仍需在SwiftUI中依赖UIKit(AppKit)代码。好在,SwiftUI为开发者提供了便捷的方式将UIKit(AppKit)视图(或控制器)包装成SwiftUI视图。...生命周期 SwiftUI同UIKit和AppKit的主要区别之一是,SwiftUI的视图(View)是值类型,并不是对屏幕上绘制内容的具体引用。...但SwiftUI无法真正进行无限量的调用来绘制视图,因此它必须以某种方式缩短递归。为了结束递归,SwiftUI包含了很多的原始类型(primitive types)。...本节以版本1.0结束时的代码为基础。 所谓的SwfitUI风格化,更确切地说应该是函数式编程的链式调用。将多个操作通过点号(.)链接在一起,增加可读性。...苹果对SwiftUI的野心非常大,不仅为开发者带来了声明+响应式的编程体验,同时苹果对SwiftUI在跨设备、跨平台上(苹果生态)也做出了巨大的投入了。

    8.3K22

    【Java AWT 图形界面编程】使用鼠标滚轮缩放 Canvas 画布中绘制的背景图像 ( 绘制超大图像 + 鼠标拖动 + 鼠标滚轮缩放 + 以当前鼠标指针位置为缩放中心 示例 )

    一、鼠标滚轮缩放的中心点设置为当前鼠标中心点 - 要点分析 ---- 鼠标指针指向界面中的 Canvas 画布某个位置 , Canvas 画布中绘制着一张超大图片 , 以该位置为中心 , 滑动鼠标滚轮时进行缩放...; 使用鼠标滚轮缩放后 , 在 Canvas 中绘制的图片的尺寸肯定是放大或者缩小了 , 尺寸发生了改变 ; 图片缩放时 , 鼠标指针指向一个位置 , 该位置对应着一个当前 Canvas 画布中的 x...在鼠标滚轮缩放完成后 , 再根据鼠标指针指向的位置和比例 , 结合图片缩放后的尺寸 , 重新计算画布偏移的位置 , 以达到鼠标指向的图片元素位置基本保持不变的目的 ; /** * 计算新的比例...+ 鼠标拖动 + 鼠标滚轮缩放 + 以当前鼠标指针位置为缩放中心 示例 ---- 1、代码示例 import javax.swing.*; import java.awt.*; import java.awt.event.MouseAdapter...H 标识放置在界面中心 ; 将鼠标指针放在 H 位置 , 缩放 , 发现此时缩放 , 就是以当前鼠标指针为中心进行的缩放 ;

    2.8K10

    ViewBuilder 研究(下) —— 从模仿中学习

    SwiftUI 如何处理视图 SwiftUI 从加载视图、响应状态到屏幕绘制大概经历如下过程: 从根视图开始按视图层级结构沿特定分支(依据初始状态)逐个实例化视图,直到满足当前全部的显示所需 上述实例化后的视图值...,按视图层级结构依当前状态逐个实例化视图类型(到满足全部显示所需为止) 将已不再需要参与布局和渲染的视图的值从 SwiftUI 数据池中移除,并在数据池中添加上新增的视图值 对于仍需显示但视图值发生变化的视图...,使用新的视图值替换原有视图值 重组依赖图并绘制新增及发生变化的视图 周而复始、循环往复 仿制 ViewBuilder ViewBuilder(视图构建器)将帮助开发者以一种简洁、清晰、易读的方式声明视图...但 SwiftUI 框架提供的基本视图类型则充分利用了这些接口以实现各自的不同需求。...,并不会尝试获取它们的 body 属性内容( Never 是不可触碰的),而是按照其各自特定的逻辑来进行处理。

    3.1K20

    SwiftUI 动画进阶 — Part 5:Canvas

    从 SwiftUI 的第一个版本开始,路径可以通过多种方式创建和修改。...通过解析,SwiftUI将考虑到环境(例如,颜色方案、显示分辨率等)。此外,解析这些元素会暴露出一些有趣的属性,这些属性可能会被进一步用于我们的绘制逻辑。...不要与SF符号相混淆,后者是完全不同的东西。Canvas 视图有一种引用 SwiftUI 视图的方式,将其解析为一个符号,然后绘制它。...: 1、通过对相应操作排序 在可能的情况下,你可以选择以一种适合你的方式对绘制操作进行排序。...以下屏幕截图的一部分是加速的,以显示分针和时针是如何移动的,否则就不容易观察到效果: 当我们用 Canvas 创建动画时,通常会使用时间线时间表的 .animation。

    2.7K10

    GeometryReader :好东西还是坏东西?

    GeometryReader 打破了 SwiftUI 声明式编程的理念,使得需要直接操作视图框架,更接近命令式编程。...例如,如果我们想在 ScrollView 中以 16:9 的比例显示图片(即使图片自身的比例与此不符): struct GeometryReaderInScrollView: View { var...如果我们仍然使用上文代码中的信息获取方式,那么就无法获得变更后的信息: .onAppear { width = proxy.size.width } 因此,正确的获取信息的方式为: .task...这既保证了信息获取的准确性(尺寸、位置与要获取的视图完全一致),也不会在视觉上造成额外的影响。...请阅读 用 SwiftUI 的方式进行布局[9] 和 在 SwiftUI 中实现视图居中的若干种方法[10] 两篇文章,以了解面对同一个需求,SwiftUI 有多种布局手段。

    65770

    SwiftUI 4.0 的全新导航系统

    SwiftUI 4.0( iOS 16+ 、macOS 13+ )对导航系统作出了重大改变,提供了以视图堆栈为管理对象的新 API ,让开发者可以轻松实现编程式导航。本文将对新的导航系统作以介绍。...,一分为二的方式将让布局表达更加清晰,同时也会强迫开发者为 SwiftUI 应用对 iPadOS 和 macOS 做更多的适配。...基于类型的响应式目标视图处理机制 比如下面的代码是在老版本( 4.0 之前 )SwiftUI 中使用编程式跳转的一种方式: struct NavigationViewDemo: View { @...动态控制多栏显示状态 另一个之前困扰多栏 NavigationView 的问题就是,无法通过编程的手段动态地控制多栏显示状态。...,例如,在 macOS 上,detalOnly 不会起作用 如果想在 SwiftUI 4.0 之前的版本上使用类似的功能,可以参考我在 用 NavigationViewKit 增强 SwiftUI 的导航视图

    10.4K62

    Python——绘制圆形

    '] = ['SimHei'] # 用来正常显示中文标签 plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号 有了这两句话,我们在显示的时候就能正常的显示在面板上了...axis('equal') 下面是我们以r=2作为半径,a,b=(0.,0.)为圆心坐标的方式进行圆的绘制,我这里使用了两种方法进行计算,相对来说难度都不大,但是一个是使用con与sin进行绘制的,...另外的第二个使用的是sqrt开根号的方式进行绘制的,过程中我们要注意所有的变量都是浮点数,如果只进行整数计算在单位坐标内是很难绘制出来一个比较好看圆的。...color设置颜色,circle就是设置圆的半径,最后显示就行。...Python画图之turtle模块: 在中国电子学会组织的“全国青少年软件编程等级考试”Python一级考纲里要求考生知道turtle库的功能,知道如何导入该库文件,掌握它的使用方法:前进、后退、左右转

    2.4K10

    Ask Apple 2022 与 SwiftUI 有关的问答(上)

    Ask Apple 为开发者与苹果工程师创造了在 WWDC 之外进行直接交流的机会。本文对本次活动中与 SwiftUI 有关的一些问答进行了整理,并添加了一点个人见解。本文为上篇。...对于苹果工程师给予的建议有一点请注意,那就是如果有在父视图中修改该环境对象实例的需求,须确保父视图不会被反复重构( SwiftUI 重新创建视图类型的实例 )。...阅读 Reverse Engineering SwiftUI’s NavigationPath Codability[7] 一文,以了解它的实现原理。...对我来说,这似乎是一个完全合理的实现。如果你遇到了性能问题或者希望大幅扩展你所绘制的图片数量,可以试一下 .drawingGroup 和 Canvas APIs ,它们都可以用于更密集地绘制。...我正以聊天室、Twitter、博客留言等讨论为灵感,从中选取有代表性的问题和技巧制作成 Tips ,发布在 Twitter 上。

    12.3K20

    SwiftUI:使用 CGAffineTransform 和奇偶填充来变换形状

    当您不再满足于简单的形状和路径时,SwiftUI的两个有用功能会合在一起,以极少的工作量创建出漂亮的效果。第一个是CGAffineTransform,它描述了如何旋转,缩放或剪切路径或视图。...第二个是奇偶填充(even-odd fills),它使我们可以控制应如何渲染重叠的形状。 为了演示这两种方法,我们将用几个旋转的椭圆形花瓣创建一个花朵形状,每个椭圆形都围绕一个圆放置。...旋转变换的移动量等于绘制空间宽度和高度的一半,因此每个花瓣都以我们的形状为中心。 为花瓣创建一个新路径,该路径等于特定大小的椭圆。 将变换应用到该椭圆,以便将其移到适当位置。...如果您想一次通过数字计数,则范围为1 ... 5很好,但是如果您想以2s进行计数,或者在我们的情况下以“ pi / 8”为单位,则应使用stride(from:to:by :)代替。...如果您查看绘制椭圆的方式,它们经常重叠——有时一个椭圆绘制在另一个椭圆上,有时绘制在其他多个椭圆上。 如果我们使用纯色填充路径,则会得到相当不令人印象深刻的结果。

    1.5K30

    在iOS 16中用SwiftUI Charts创建一个折线图

    图表是以丰富的格式呈现可视化数据的一种很好的方式,而且易于理解。本文展示了如何用比以前从头开始创建同样的折线图少得多的代码轻松创建折线图。...Charts 创建的折线图显示每日步数 使用 SwiftUI Charts 创建的折线图显示每日步数 其他图表 SwiftUI Charts 有许多可用的图表选项。...当前的周数紧接着上一周,所以每一个点都是沿着X轴线性递增绘制的。 有必要只用工作日作为X轴的数值,这样所有的周日都在同一个X坐标上绘制。...在StepCount中添加另一个计算属性,以便以字符串格式返回工作日的短日。...另外,前景的样式设置为基于stepCount数组的周期。折线图使用 x 轴的工作日来显示两周的步数,以便在周之间进行比较。

    3.5K20

    在 iOS 16 中用 SwiftUI Charts 创建一个折线图

    前言 苹果在 WWWDC 2022 上推出了 SwiftUI 图表,这使得在 SwiftUI 视图中创建图表变得异常简单。图表是以丰富的格式呈现可视化数据的一种很好的方式,而且易于理解。...Charts 创建的折线图显示每日步数 使用 SwiftUI Charts 创建的折线图显示每日步数 其他图表 SwiftUI Charts 有许多可用的图表选项。...图表创建的其他图表类型,显示每日步数 使用 SwiftUI 图表创建的其他图表类型,显示每日步数 让折线图增加可访问性 将图表植入 SwiftUI 的一个好处是,可以很容易地使用可访问性修饰符[2]...当前的周数紧接着上一周,所以每一个点都是沿着X轴线性递增绘制的。 有必要只用工作日作为X轴的数值,这样所有的周日都在同一个X坐标上绘制。...另外,前景的样式设置为基于stepCount数组的周期。折线图使用 x 轴的工作日来显示两周的步数,以便在周之间进行比较。

    3.7K20

    SwiftUI TextField 进阶 —— 事件、焦点、键盘

    没有为 TextField 提供获得焦点的方法(例如:becomeFirstResponder),因此在相当长的时间里,开发者只能通过非 SwiftUI 的方式来实现类似的功能。...在 SwiftUI 3.0 之前,我们必须在主视图上另外绘制或者使用非 SwiftUI 的方式来解决问题,在 SwiftUI 3.0 中,由于添加了原生设置键盘辅助视图(下文具体介绍)的功能,解决上述问题将不再困难...取消键盘 有些情况下,在用户输入完毕后,我们需要取消软键盘的显示,以便留出更大的显示空间。某些键盘类型并没有return按键,因此我们需要使用编程的方式让键盘消失。...另外,有时候为了提高交互体验,我们可以希望用户在录入结束后,无需点击return按键,通过点击屏幕其他区域或者以滚动列表的方式来取消键盘。同样也需要使用编程的方式让键盘消失。...如果分别对不同的 TextField 进行设定,SwiftUI 会将所有的内容合并起来显示。 目前 SwiftUI 对 toolbar 内容的干预和处理有些过头。

    13.4K10
    领券