UIViewController的所有角落

UIViewController的所有角落

我试图把UIViewController的所有角落都弄圆。在我的视图控制器中,我有以下内容:

 override func viewDidLoad()
  {
    super.viewDidLoad()

    let maskLayer = CAShapeLayer()
    maskLayer.path = UIBezierPath(roundedRect: view.bounds, byRoundingCorners: .AllCorners, cornerRadii: CGSize(width: 10, height: 10)).CGPath
    view.layer.mask = maskLayer
    let margin = CGFloat(10)
    self.view.frame = CGRect(x: margin, y: margin, width: view.frame.size.width - margin*2, height: view.frame.size.height - margin * 2)
  }

在提供上述控制器的视图控制器中,我具有:
let storyboard = UIStoryboard(name: "Subscriptions", bundle: nil)
let subscriptionsViewController = storyboard.instantiateViewControllerWithIdentifier("subscriptionsViewController") as! SubscriptionsViewController
addChildViewController(subscriptionsViewController)
view.insertSubview(subscriptionsViewController.view, aboveSubview: view)
subscriptionsViewController.didMoveToParentViewController(self)

这样可以很好地使用新的控制器,但是只有左上角是圆角的,其他都不是。有什么想法我可能在这里做错了吗?谢谢!

最佳答案

尝试为Superview的(self.veiw.superview.layer)属性cornerRadius和masksToBounds设置相同的值。

如果导航控制器中有viewcontroller,则也要为其设置相同的值(self.navigationController.view.superview.layer)

在视图控制器的viewDidAppear中设置以上内容

关于ios - 无法绕过UIViewController的所有角落,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35982528/

10-14 19:52