如何在页面转换时防止图层clipToBounds的延迟

时间:2016-08-24 22:54:46

标签: ios swift

我有一个半径角的页面。 页面出现时,角落最初不会四舍五入。几秒钟后,角落变圆。 我想从一开始就让角落圆润。

我设置属性以在自定义视图的初始化程序中查看。

class ModalView: UIView {

  init() {
    super.init(frame: .zero)

     self.backgroundColor    = UIColor.whiteColor()
     self.clipsToBounds      = true
     self.layer.cornerRadius = 10
  }
}


class ViewController: UIViewController {
  override func loadView() {
    let customView = ModalView()
    customView.frame = self.view.frame
    self.view = customView
  }

}

sample image

2 个答案:

答案 0 :(得分:0)

这个问题解决了。 情况如下。 image

因此,我将cornerRadius设置为导航控制器的视图。

self.navigationController?.view.layer.cornerRadius = 10
self.navigationController?.view.clipsToBounds = true

答案 1 :(得分:0)

您的代码无法编译。

首先,缺少initWithCoder,也许你省略了它。

其次,在init中你调用超级initWithFrame,它在内部再次调用init,这是程序崩溃的地方,我不知道你的工作方式,但这解释了延迟。

第三,loadView用于纯粹由代码制作的控制器,如果你有一个xib,你已经有了一个视图。

四,UIViewController没有扩展UIView,我甚至不理解你想在那里做什么,你不能重新定义一个类。