swift - 对 UIBezierPath 应用变换使绘图消失

标签 swift core-graphics uibezierpath cgaffinetransform

也许这是一个愚蠢的问题,但我正在尝试将转换应用到像这样简单的路径:

let path = UIBezierPath(rect: CGRect(x: 10, y: 10, width: 20, height: 20))
path.apply(CGAffineTransform(rotationAngle: 2.0))
"colorLiteral".setFill()
path.fill()

似乎添加“应用”行的事实,完全删除了 View 上的形状,而如果我不包含该行,则形状会正确显示在其位置上。

我对 Swift 还很陌生,所以我想我错过了这方面的重要一步? 谢谢大家!

最佳答案

试试这个并记住rotationAngle采用弧度

let bounds = CGRect(x: 10, y: 10, width: 20, height: 20)
let path = UIBezierPath(rect: bounds)
path.apply(CGAffineTransform(translationX: -bounds.midX, y: -bounds.midY))
path.apply(CGAffineTransform(rotationAngle: CGFloat.pi / 4))
path.apply(CGAffineTransform(translationX: bounds.midX, y: bounds.midY))

关于swift - 对 UIBezierPath 应用变换使绘图消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50961198/

相关文章:

swift - 使用 Swift 将 UInt8?, String, Int 转换为 String 类型

ios - 使用closePath函数关闭贝塞尔路径和手动关闭有什么区别?

objective-c - 有没有办法忽略 objective-c 中的 uitouch?

ios - UIBezierPath lineWidth 基于 UIPanGestureRecognizer 的速度

swift - 在 tableView 中选择后在 detailView 中显示来自 URL 的图像

ios - 添加一个带有渐变颜色的调整大小的 UIButton 背景

ios - 我的 CoreGraphics 代码运行非常缓慢。我怎样才能让这个自定义的 UIScrollView 表现得更好?

ios - 一个项目可以使用哪种图形框架?

swift - 在 swift 中使用 UIBezierPath 绘制形状

ios - 我如何从字符串中获取一个整数?