我想围绕我的右角,但只适用于左角
EntityRepository
答案 0 :(得分:29)
问题是,在为当前设备调整视图范围之前,您已获得该视图的界限。它比屏幕上显示的要大,所以圆角矩形的右侧偏离屏幕的右侧。
您需要创建path
并在视图调整大小后设置maskLayer.path
,这意味着在运行循环的布局阶段期间或之后。因此要么对视图进行子类化,要么在视图的layoutSubviews
方法中进行,要么在视图控制器的viewDidLayoutSubviews
方法中进行。
答案 1 :(得分:16)
Swift 3
对我有用!
override func layoutSubviews() {
super.layoutSubviews()
DispatchQueue.main.async {
self.containerView.roundCorners(corners: [.topRight,.topLeft], radius: 25)
self.containerView.layer.masksToBounds = true
}
self.layoutIfNeeded()
}
您可以在此处查看“roundCorners”方法:https://stackoverflow.com/a/41217863/3687902
答案 2 :(得分:1)
如果您尝试设置在Storyboard OR Xib上设计的View的RoundingCorners,请将角落和MaskLayer.path设置为以下方法。
override func viewDidLayoutSubviews() {
// here you can write the code...
}