【发布时间】:2018-01-17 12:00:27
【问题描述】:
我该如何解决这个问题? 图像在情节提要中设置了约束;另一个圆圈是用这些代码行设置的:
let centerY = profileImage.center.y+20+(self.navigationController?.navigationBar.frame.size.height)!
let centerX = profileImage.center.x
let center = CGPoint(x: centerX, y: centerY)
let trackLayer = CAShapeLayer()
let circularPath = UIBezierPath(arcCenter: center, radius: (profileImage.frame.width/2)+2, startAngle: -CGFloat.pi-CGFloat.pi/2, endAngle: CGFloat.pi/2, clockwise: true)
trackLayer.path = circularPath.cgPath
trackLayer.strokeColor = Functions.hexStringToUIColor(hex: "#3859B9").cgColor
trackLayer.lineWidth = 3
trackLayer.lineCap = kCALineCapRound
trackLayer.fillColor = UIColor.clear.cgColor
view.layer.addSublayer(trackLayer)
在 iPhone 7 上(右边那个)似乎是正确的。
【问题讨论】:
-
你在哪个函数里加圈?很可能在布局完成之前调用您的代码。顺便说一句,您还可以以编程方式将自动布局约束添加到您以编程方式创建的圆圈中。
-
你的代码在加载方法中吗?那么你可以使用延迟为 0.5 的调度队列
-
你为什么不把子层添加到 profileImage 中呢?
-
是的,我的代码在viewDidLoad中,放在那里有错吗?
-
viewDidlayoutSubviews.......
标签: ios swift uiimageview layer