如何在 Core Graphics / Quartz 2D 中绘制圆角矩形?
我需要绘制圆角矩形的轮廓。我知道我可以制作直线和圆弧,但也许还有圆角矩形的功能?
I need to draw an outline for a rounded rectangle. I know I can make lines and arcs, but maybe there is also a function for rounded rects?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
,而不是用直线和圆弧创建自己的路径。
您可以使用or
(第二个让您指定哪些角是圆角的)
iOS 3.2 或更高版本中提供。
Instead of making your own path out of lines and arcs, you can use
or
(the second one lets you specify which corners are rounded)
Available in iOS 3.2 or later.
没有预先打包的方法,您必须组合弧才能做到这一点,苹果的quartzdemo项目显示了执行此操作的代码,这里是一个参考Quartz Demo 这是他们提供的代码
There is no prepackaged way to this, you must combine arcs in order to do this, apples quartzdemo project shows the code to do this, here is a reference Quartz Demo and here is the code they provide
这是我编写的一个函数,它使用角半径对输入矩形进行圆角化。
如何使用该函数,假设您继承了 UIView 并重写了 drawRect:
示例输出:
Here is a function I wrote that rounds the input rect using a corner radius.
How to use the function, assuming you subclass UIView and override drawRect:
Example output:
如果你想在任何 UIView (或子类)上有圆角,简单的方法是在视图的图层上设置cornerRadius属性。请参阅在 iPhone 中预览圆形图像
If you want To have rounded corners on any UIView (or subclass) the easy way is to set the cornerRadius property on the view's layer. See Preview rounded image in iphone
< code>CGPathCreateWithRoundedRect() 会做你想要的。
从 iOS 7.0 开始可用
CGPathCreateWithRoundedRect()
will do what you want.Available starting in iOS 7.0
斯威夫特:
Swift:
也许……三个?晚了几年,但这些天我使用它没有任何问题。
Maybe... three? years late, but these days I'm using this without issues.
斯威夫特 4.2
Swift 4.2