Ios 如何更改Swift2中CGRect的边框样式?

Ios 如何更改Swift2中CGRect的边框样式?,ios,swift2,cgrect,Ios,Swift2,Cgrect,我正在学习Swift,我的设计师给了我一个这样的屏幕 我面临的问题是如何更改此虚线形式中总积分CGRect的边框样式 我的代码是: override func viewDidLoad() { let promobox = UIView() promobox.frame = CGRectMake(16, promotextfield.frame.minY + 180, self.view.frame.width - 32, 60) promobox.layer.bor

我正在学习Swift,我的设计师给了我一个这样的屏幕

我面临的问题是如何更改此虚线形式中总积分
CGRect
的边框样式

我的代码是:

override func viewDidLoad()
{
    let promobox =  UIView()

    promobox.frame = CGRectMake(16, promotextfield.frame.minY + 180, self.view.frame.width - 32, 60)
    promobox.layer.borderColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.2).CGColor
    promobox.layer.borderWidth = 2.0
    promobox.layer.backgroundColor = UIColor(red: 255, green: 255, blue: 255, alpha: 0.2).CGColor

    //background color of box
    self.view.addSubview(promobox)
}

这就是你可以做到的:

let promobox =  UIView()

promobox.frame = CGRectMake(16, 50, self.view.frame.width - 32, 60)
promobox.layer.borderColor = UIColor.whiteColor().CGColor
promobox.layer.borderWidth = 2.0
promobox.layer.backgroundColor = UIColor(red: 255, green: 255, blue: 255, alpha: 0.2).CGColor

let border = CAShapeLayer.init()
border.frame = promobox.bounds
border.path = UIBezierPath(rect: border.frame).CGPath
border.lineWidth = 2
border.strokeColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.2).CGColor
border.fillColor = UIColor.clearColor().CGColor
border.lineDashPattern = [4, 6]
promobox.layer.addSublayer(border)

使用
lineDashPattern
来满足设计师的期望。

这就是您可以做到的:

let promobox =  UIView()

promobox.frame = CGRectMake(16, 50, self.view.frame.width - 32, 60)
promobox.layer.borderColor = UIColor.whiteColor().CGColor
promobox.layer.borderWidth = 2.0
promobox.layer.backgroundColor = UIColor(red: 255, green: 255, blue: 255, alpha: 0.2).CGColor

let border = CAShapeLayer.init()
border.frame = promobox.bounds
border.path = UIBezierPath(rect: border.frame).CGPath
border.lineWidth = 2
border.strokeColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.2).CGColor
border.fillColor = UIColor.clearColor().CGColor
border.lineDashPattern = [4, 6]
promobox.layer.addSublayer(border)

使用
lineDashPattern
来满足设计师的期望。

您曾经在objective-c中工作过吗??(你能把objective-c代码转换成swift吗?)@Sonika Soody:它成功了@abhinav为了他人的利益,你能接受我的回答吗@你曾经在objective-c工作过吗??(你能把objective-c代码转换成swift吗?)@Sonika Soody:它成功了@abhinav为了他人的利益,你能接受我的回答吗@索尼卡苏德