到超级视图子视图UIView的角半径未显示

问题描述 投票:0回答:1

将(50高度)的UIView添加到超级视图,即UIView保留内部50%的外部视图作为超级视图。

将角半径添加到超级视图后,bottomView的下半部分未显示。

extension UIView{

    func roundCorners(_ corners: UIRectCorner, radius: CGFloat) {
        let path = UIBezierPath(roundedRect: self.bounds, byRoundingCorners: corners, cornerRadii: CGSize(width: radius, height: radius))
        let mask = CAShapeLayer()
        mask.path = path.cgPath
        self.layer.mask = mask
    }
}

override func awakeFromNib() {
    super.awakeFromNib()
    // Initialization code
    bg_view.roundCorners([.bottomLeft, .bottomRight], radius: 20). // MainView
    SearchView.bringSubviewToFront(bg_View)
}

这里是情节提要图像

d

ios swift uiview storyboard cornerradius
1个回答
0
投票

由于您正在设置cornerRadius,因此应将绿色视图移出背景视图,以限制其边界。您的绿色视图的centerY约束可以等于backgroundViews底部。为了实现这一点,您可以先在它们之间定义垂直间距,然后将该约束条件的第一项编辑为centerY

View hierarchy

© www.soinside.com 2019 - 2024. All rights reserved.