【问题标题】:CornerRadius exactly UIViewCornerRadius 正是 UIView
【发布时间】:2016-04-25 05:33:10
【问题描述】:

我想完美地剪裁 UIView 的边界以与圆形交互,但是我将角半径、蒙版和剪辑设置为边界并且它正确显示,它作为正方形移动,如图所示:

我使用的代码是:

let bubble1 = UIView(frame: CGRectMake(location.x, location.y, 128, 128))
bubble1.backgroundColor = color2
bubble1.layer.cornerRadius = bubble1.frame.size.width/2
bubble1.clipsToBounds = true
bubble1.layer.masksToBounds = true

仍然保持视图边缘有什么问题?

PD:所有视图都是动态移动的,所以当它移动并相互碰撞时,它会显示这些空白空间,充当正方形而不是圆形

【问题讨论】:

  • 有什么问题? “它像正方形一样移动”是什么意思?
  • @ozgur 视图是动画的,当它移动时,它不会碰到其他视图,正如您在图像中看到的那样,有一个空白空间,我认为这是原始正方形的边缘看法。我所说的正方形是指它折叠成正方形而不是圆形,从而在彼此之间留下这些可怕的空白。
  • 您是否尝试通过更改它们的框架手动将它们相交,以便您可以彻底看到任何白色角落?
  • @ozgur 我用一种方法设置它们,但我手动设置了 x y 位置。但是我已经手动尝试过,它仍然显示这些空白之间的空间
  • 考虑使用Spritekit?

标签: swift uiview rounded-corners


【解决方案1】:

最后,我终于找到了要实现的东西,而且只是那个类而不是 UIView:

class SphereView: UIView {
    // iOS 9 specific
    override var collisionBoundsType: UIDynamicItemCollisionBoundsType {
        return .Ellipse
    }
}

在这里看到:https://objectcoder.com/2016/02/29/variation-on-dropit-demo-from-lecture-12-dynamic-animation-cs193p-stanford-university/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-09
    • 2011-08-22
    • 2022-11-26
    • 1970-01-01
    相关资源
    最近更新 更多