SWIFT: почему форма в viewDidLayoutSubviews создается дважды - PullRequest
0 голосов
/ 20 марта 2020

это код, который я использую для создания формы, он должен быть в viewDidLayoutSubviews, потому что я центрирую его для просмотра границ, которые не загружены в viewDidLoad, но по какой-то причине он создает форму дважды ... Может кто-нибудь мне помочь избавиться от второй фигуры?

переопределить веселье c viewDidLayoutSubviews () {super.viewDidLayoutSubviews ()

   let center = circleView.center
    let circularPath = UIBezierPath(arcCenter: center, radius: 100, startAngle: -CGFloat.pi / 2, endAngle: 2 * CGFloat.pi, clockwise: true)
   // create my track layer
   let trackLayer = CAShapeLayer()
   trackLayer.path = circularPath.cgPath
   trackLayer.strokeColor = UIColor.white.cgColor
   trackLayer.lineWidth = 5.5
   trackLayer.fillColor = UIColor.clear.cgColor
   trackLayer.lineCap = CAShapeLayerLineCap.round
   view.layer.addSublayer(trackLayer)

   //        let circularPath = UIBezierPath(arcCenter: center, radius: 100, startAngle: -CGFloat.pi / 2, endAngle: 2 * CGFloat.pi, clockwise: true)
   shapeLayer.path = circularPath.cgPath
   shapeLayer.strokeColor = #colorLiteral(red: 0.9254902005, green: 0.2352941185, blue: 0.1019607857, alpha: 1)
   shapeLayer.lineWidth = 5.5
   shapeLayer.fillColor = UIColor.clear.cgColor
   shapeLayer.lineCap = CAShapeLayerLineCap.round
   shapeLayer.strokeEnd = 0

   view.layer.addSublayer(shapeLayer)



}

1 Ответ

0 голосов
/ 20 марта 2020

Я смог решить эту проблему после помещения let trackLayer = CAShapeLayer () вне viewDidLayoutSubviews

...