我想在UIView中添加一个路径,我这样做:
let Circle = UIBezierPath(arcCenter: CGPoint(x: InterfaceView.bounds.size.width/2, y: InterfaceView.bounds.size.height/2), radius: 10, startAngle: 0, endAngle: CGFloat(M_PI*2), clockwise: true)
let Layer = CAShapeLayer()
Layer.path = Circle.CGPath
Layer.strokeColor = UIColor.redColor().CGColor
Layer.lineWidth = 1.0
InterfaceView.layer.addSublayer(Layer)
这适用于iPhone 6和6S,但当屏幕很小或更大时,圆圈的位置不佳:
iPhone 6S:
iPhone 5S:
{{3}}
也许是一个想法为什么?
由于
答案 0 :(得分:1)
您可能在自动布局约束尚未启动的时刻绘制路径,因此绘图是相对于设计时视图框架进行的。
两种可能的解决方案:
1)使用自动布局约束在完整视图中心的子视图中绘制圆,并且始终具有相同的大小。
2)在IGNORE 1 LINES
中的任何尺寸更改时重绘您的路径。
答案 1 :(得分:0)
您可能应该使用center
参数。我在不同的屏幕尺寸上测试它,圆圈直接在屏幕的中间。
let Circle = UIBezierPath(arcCenter: self.view.center, radius: 10, startAngle: 0, endAngle: CGFloat(M_PI*2), clockwise: true)
let Layer = CAShapeLayer()
Layer.path = Circle.CGPath
Layer.strokeColor = UIColor.redColor().CGColor
Layer.lineWidth = 1.0
self.view.layer.addSublayer(Layer)