2015-11-01 47 views
1

我有麻煩試圖居中我的橢圓形編程目前我有這樣的代碼定心使用CGRectMake斯威夫特

func setupLayers(){ 
     let oval = CAShapeLayer() 
     oval.frame = CGRectMake(137.5, 283.5, 100, 100) 
     oval.path = ovalPath().CGPath; 
     self.layer.addSublayer(oval) 
     layers["oval"] = oval 

     resetLayerPropertiesForLayerIdentifiers(nil) 
    } 

這個代碼能夠居中橢圓形的iPhone 6和6秒的橢圓形,但我想它能夠以所有設備爲中心。

我已經試過這個代碼太:

func drawCircle(size: CGFloat) { 
let circleShape = CAShapeLayer() 
circleShape.path = UIBezierPath(ovalInRect: CGRectMake(-size/2, -size/2, size, size)).CGPath 
circleShape.fillColor = UIColor.blueColor().CGColor 
circleShape.strokeColor = UIColor.redColor().CGColor 
circleShape.lineWidth = 1 
circleShape.frame.origin = view.center 
circleShape.name = "circleShape" 
view.layer.addSublayer(circleShape) 

}

畫圓(100)

回答

1

您需要設置圖層的anchorPoint是它的中心。

oval.anchorPoint = CGPoint(x: 0.5, y: 0.5) 

然後,你可以設置爲中心視層的位置:

oval.position = self.center 
+0

感謝您的快速回復,我試圖執行的代碼,但由於某些原因,它仍然沒有中心的橢圓形。它仍然偏向一邊。 – Harish

+0

我試過了,它工作!非常感謝 :) – Harish