如何创建 UIView 的凹形

Posted

技术标签:

【中文标题】如何创建 UIView 的凹形【英文标题】:How to create concave shape of a UIView 【发布时间】:2015-03-03 10:31:31 【问题描述】:

是否可以将视图的侧面做成凹形?

我设法用边界半径使边缘变圆,但我想知道是否可以进行其他漂亮的转换。 示例如下:

1)这是我到目前为止的进展:

2) 应该是这样的:

是否可以通过编程方式使视图看起来像这样? 如果没有,我想我会使用 png 图像来实现这一点,但通过代码完成这些东西总是更好

【问题讨论】:

是的,你可以。你只需要玩 UIBezierPath/CGPath 就可以了。他们有绘制“弧线”的方法。 感谢您的提示!我会调查的 @larme 你为什么不发表这个评论作为答案,所以我可以接受。 UIBezierPath/CGPath 是正确的方法。 BezierPath and masking 的可能重复项我更喜欢将其标记为重复项,并带有一个问题表明它是可能的。 没错,同样的事情......但像我这样的人根本不知道 UIBezierPath 甚至不会搜索它,因此您可以在答案中发布指向该问题的链接,这样更容易其他人导航 【参考方案1】:

您可以使用UIBezierPath/CGPath 来实现此目的。

有一个关于绘图的good documentation from Apple,给你关于曲线、线条等的提示:

创建形状后:

CAShapeLayer *maskLayer = [CAShapeLayer layer];
[maskLayer setFrame:[viewToMask bounds]];
[maskLayer setPath:[theBezierPath CGPath]];
[viewToMask layer] setMask = layer;

【讨论】:

以上是关于如何创建 UIView 的凹形的主要内容,如果未能解决你的问题,请参考以下文章

我想用ARCGIS提取坡型(凹形坡、凸形坡等)和坡位(坡顶、坡中、坡底),请问该怎么操作呀?

如何创建自定义 UIView?

如何创建径向 UIView?

如何创建 UIView 弹跳动画?

如何在不阻塞 UI 的情况下创建 UIView

如何创建 UIView 波纹圆圈动画?