Swift 如何创建一个顶部圆角、底部正常圆角和整个视图周围边框的UIView?
这就是我用这个代码得到的Swift 如何创建一个顶部圆角、底部正常圆角和整个视图周围边框的UIView?,swift,Swift,这就是我用这个代码得到的 private func setupBorders(){ let path = UIBezierPath(roundedRect: mainTableView.bounds, byRoundingCorners: [.topLeft, .topRight], cornerRadii: CGSize(width: 20, height: 20)) let maskLayer = CAShapeLayer() maskLayer.path = pat
private func setupBorders(){
let path = UIBezierPath(roundedRect: mainTableView.bounds, byRoundingCorners: [.topLeft, .topRight], cornerRadii: CGSize(width: 20, height: 20))
let maskLayer = CAShapeLayer()
maskLayer.path = path.cgPath
mainTableView.layer.mask = maskLayer
mainTableView.layer.borderColor = UIColor.darkGray.cgColor
mainTableView.layer.borderWidth = 1.0
}
MainTableView是包含记事本表格和表格标题的uiview。如果我可以让它为任何UIView工作,那么它将为这一个工作。非常感谢任何能提供帮助的人
编辑:如果不清楚,问题是圆角上的边框消失。遮罩层不足以满足您的要求,因为层边框与层遮罩无关。相反,您应该创建一个用于绘制背景和边框的视图,它也应该沿着边框剪裁其内容。在情节提要中,将UIView拖动到ViewController,根据需要设置约束,将其链接到NewView,然后尝试此操作
import UIKit
import QuartzCore
class ViewController: UIViewController{
@IBOutlet var NewView :UIView!
override func viewDidLoad() {
super.viewDidLoad()
let screenSize: CGRect = UIScreen.mainScreen().bounds
let HeightFloat :CGFloat = screenSize.height - 60
let WidthFloat :CGFloat = screenSize.width - 50
let NewRect :CGRect = CGRectMake(10, 20, WidthFloat, HeightFloat)
let maskPath = UIBezierPath(roundedRect: NewRect,
byRoundingCorners: [.TopLeft, .TopRight],
cornerRadii: CGSize(width: 10, height: 10))
let shape = CAShapeLayer()
shape.path = maskPath.CGPath
shape.fillColor = UIColor.clearColor().CGColor
shape.strokeColor = UIColor.darkGrayColor().CGColor
shape.lineWidth = 2
shape.lineJoin = kCALineJoinRound
NewView.layer.mask = shape
}
}
你会得到你的输出,