2015-10-20 41 views
1

我在學Swift,我的設計師給了我這樣一個屏幕。如何在Swift2中更改CGRect的邊框樣式?

enter image description here

我在如何改變總學分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) 
} 
+0

你有沒有在Objective-C工作? (你可以將Objective-C代碼轉換成swift嗎?) –

+0

你用我的代碼嘗試了嗎? @Sonika Sood – Abhinav

+0

是的,它的工作@Abhinav –

回答

0

這是你如何能做到這一點:

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來滿足你的設計師的期望。