Я пытаюсь нарисовать круговой индикатор выполнения с помощью CAShapeLayer внутри пользовательского UIView, который был автоматически ограничен, я не хочу рисовать свой круг в центре моего супер-представления, а скорее в центре моего пользовательского представления, потому что у меня есть другие Представления вверху мой код ниже рисует круг, но он не позиционируется в указанном представлении
// Custom View
let gaugeViewHolder = UIView()
scrollView.addSubview(gaugeViewHolder)
gaugeViewHolder.translatesAutoresizingMaskIntoConstraints = false
gaugeViewHolder.backgroundColor = UIColor.black
gaugeViewHolder.leadingAnchor.constraint(equalTo: motherView.leadingAnchor).isActive = true
gaugeViewHolder.topAnchor.constraint(equalTo: defaultAccImage.bottomAnchor, constant: 70).isActive = true
gaugeViewHolder.trailingAnchor.constraint(equalTo: motherView.trailingAnchor).isActive = true
gaugeViewHolder.heightAnchor.constraint(equalToConstant: 200).isActive = true
//Now my circle
let shapeLayer = CAShapeLayer()
let centerForGauge = gaugeViewHolder.center
let circularPath = UIBezierPath(arcCenter: centerForGauge
, radius: 80, startAngle: 0, endAngle: 2 * CGFloat.pi, clockwise: true)
shapeLayer.path = circularPath.cgPath
shapeLayer.strokeColor = UIColor.white.withAlphaComponent(0.20).cgColor
shapeLayer.lineWidth = 10
shapeLayer.fillColor = UIColor.clear.cgColor
shapeLayer.lineCap = kCALineCapRound
gaugeViewHolder.layer.addSublayer(shapeLayer)
layer.frame = owningView.bounds
, а затем, когда вы установите центр вашего пути, он должен быть в системе координат слоя формы (или представления). Свойствоcenter
представления находится в системе координат суперпредставления, что не, что вам нужно. - person Duncan C   schedule 13.10.2018