【问题标题】:How do I draw a circle UIView that acts like one with UICollisionBehavior?如何绘制一个类似于 UICollisionBehavior 的圆形 UIView?
【发布时间】:2014-02-10 11:07:32
【问题描述】:

在我的应用程序中,我目前正在绘制一个基本视图,然后我尝试使用 CAShapeLayer 将其圆角,但 UICollisionBehavior 的反应仍然像绘制的正方形一样。

这是我的代码示例

  UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:self.bounds
                                           byRoundingCorners:UIRectCornerAllCorners
                                                 cornerRadii:radiiSize];

// Mask the container view’s layer to round the corners.
CAShapeLayer *cornerMaskLayer = [CAShapeLayer layer];
[cornerMaskLayer setPath:path.CGPath];
self.containerView.layer.mask = cornerMaskLayer;
self.containerView.layer.allowsEdgeAntialiasing = YES;

【问题讨论】:

  • 看起来 UIKit Dynamics 仅限于矩形形状。核心设计决策是低开销,因此它是一个非常简单的引擎。
  • 希望 iOS 8 为引擎带来这个功能。

标签: ios objective-c uiview uicollisionbehavior


【解决方案1】:

只需这样做而不是使用 UIBezierPath

self.containerView.layer.cornerRadius = [Radius is half the height/width];
self.containerView.clipsToBounds = YES;

【讨论】:

  • 我试过了,仍然像一个正方形。太奇怪了。我不想尝试破解 Sprite Kit。
  • 我在 ImageView 中使用过它,它在那里工作。我现在正在普通的 UIView 上尝试它。
  • 你能告诉我你的代码的 sn-p 吗?将不胜感激。
  • 就在你的 viewDidLoad 上的那两行。我已经测试过了。
  • 由于某种原因仍然无法正常工作。你有可以托管快速项目的 github 吗?
猜你喜欢
  • 2013-09-02
  • 2010-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-26
  • 1970-01-01
  • 2015-01-26
相关资源
最近更新 更多