繁体   English   中英

快速定位uiview的图层

[英]Positioning layers of uiview in swift

我正在时间轴视图上。 我在图标的中心画一条线,并用填充色画一个圆。 但是问题在于,当我绘制圆时,它始终位于图标的顶部。 现在图标未显示。 我尝试了zposition的图层。 这是我尝试过的

    override func draw(_ rect: CGRect) {
            if let anchor =  anchorView(){
                let centreRelativeToTableView = anchor.superview!.convert(anchor.center, to: self)
               // print("Anchor x origin : \(anchor.frame.size.origin.x)")
                 timelinePoint.position = CGPoint(x: centreRelativeToTableView.x , y: centreRelativeToTableView.y/2)
                timeline.start = CGPoint(x: centreRelativeToTableView.x  , y: 0)
                timeline.middle = CGPoint(x: timeline.start.x, y: anchor.frame.origin.y)
                timeline.end = CGPoint(x: timeline.start.x, y: self.bounds.size.height)
                timeline.draw(view: self.contentView)




                let circlePath = UIBezierPath(arcCenter: CGPoint(x: anchor.center.x,y: anchor.center.y - 20), radius: CGFloat(20), startAngle: CGFloat(0), endAngle:CGFloat(M_PI * 2), clockwise: true)

                let shapeLayer = CAShapeLayer()
                shapeLayer.path = circlePath.cgPath

                //change the fill color
                shapeLayer.fillColor = UIColor.randomFlat.cgColor
               // shapeLayer.fillColor = UIColor.clear.cgColor

                //you can change the stroke color
                shapeLayer.strokeColor = UIColor.white.cgColor
                //you can change the line width
                shapeLayer.lineWidth = 5
                shapeLayer.zPosition = 0
                anchor.alpha = 1
                //Set Anchor Z position
                  anchor.layer.zPosition = 2
                shapeLayer.zPosition = 1

                anchor.layer.addSublayer(shapeLayer)


                // Setting icon to layer
                /*let imageLayer = CALayer()
                imageLayer.contents = newImage
                anchor.layer.addSublayer(imageLayer)*/
               // timelinePoint.draw(view: self.contentView)
            }else{
                print("this should not happen")
            }


}

ss1 ------- s2

我想在圆圈上方绘制带有白色调的图标。 请帮我

使用addSublayer将在顶部添加新层,该层将覆盖之前添加的所有其他内容。

如果知道图标所在的图层,则可以使用insertSublayer(at :)将其放在图标下方

另外,您也可以在情节提要中使用图标的确切框架创建另一个UIView,并将其放置在层次结构中的较低位置,以便无论绘制到什么位置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM