2015-11-01 1 views
1

У меня возникают проблемы, пытаясь сосредоточить свой овал программно в настоящее время у меня есть этот кодЦентрирование овала с помощью CGRectMake Swift

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) 

}

DrawCircle (100)

ответ

1

Вы должны установить anchorPoint слоя, чтобы его центр.

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

Затем вы можете установить положение слоя в центре зрения:

oval.position = self.center 
+0

Спасибо за быстрый ответ, я пытался реализовать этот код, но по каким-то причинам до сих пор не центрирование овала , Он все еще сходит в сторону. – Harish

+0

Я пробовал, и это сработало! Спасибо :) – Harish

Смежные вопросы