【问题标题】:UIView that is shaped like a UIBezierPath?形状像 UIBezierPath 的 UIView?
【发布时间】:2012-07-24 21:05:00
【问题描述】:

是否可以在 iOS 上在一些 CGRect 中创建一个常规 UIView 并向其添加子视图,然后告诉容器 UIView 如下:

containerView.layer.path = someClosedUIBezierPath

?

然后所有的子视图也会根据它的父容器视图弯曲吗?

我知道每个 UIView 都有自己的 CALayer,这将是我的起点。

我看到了带有动画的示例,但我没有看到类似上面的内容(可能是因为它不存在 :))

【问题讨论】:

  • 我没有尝试过这个,但我认为它应该会有所帮助:stackoverflow.com/a/10220145/653513(虽然它是在drawRect 完成的)
  • 好吧,这看起来不太好,因为我还需要用户触摸。我认为这很容易。

标签: ios uiview calayer uibezierpath


【解决方案1】:

这有点晚了,但也许会对某人有所帮助:

您可以使用CAShapeLayer 和视图层的mask 属性将视图剪辑为贝塞尔路径:

CAShapeLayer shapeMask = [[CAShapeLayer alloc] initWithFrame:containerView.bounds];
shapeMask.path = someClosedUIBezierPath.CGPath;
containerView.layer.mask = shapeMask;
[shapeMask release];

【讨论】:

  • 好吧,我使用 CAShapeLayer 和蒙版,但不是为了这个问题。我决定不推送这个问题并重新安排我的 UI。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-08
  • 1970-01-01
  • 2017-08-04
  • 1970-01-01
  • 2015-12-19
相关资源
最近更新 更多